Javascript字段验证无法正常工作

时间:2012-01-18 05:50:20

标签: javascript jsp

我正在开发一个Web应用程序,我在其中创建了一个表单,并在表单的onSubmit事件中调用了一个java脚本函数,该函数将检查“字段必须不留空”条件,如果它是空白的表单不得发布,所以我写了以下代码:

Jsp页面表格

<form action="Result.jsp" name="validityCheck" onsubmit="return fnCheckEmptyField();">

<input type="text" name="txtIIDN" id="txtIIDN" style="font-size:medium;" onkeypress="return fnKeyPress(event)"/>


<input type="submit" id="btnValidityCheck" value="Check Validity" />
</form>

Javascript代码如下

<script>
function fnCheckEmptyField()
    {
        var strDomain= document.getElementsByName("txtIIDN").value;
        if(strDomain == null)
        {
            document.getElementById("lblValidityStatus").innerHTML="";
            document.getElementById("lblValidityStatus").innerHTML="Domain Name Field Can't be Left Blank";
            return false;
        }
        else
        {
            return true;
        }
    }

</script>

当我尝试提交表单时,javascript函数被执行,然后表单将被发布,无论返回值是true还是false。 我不想在返回值为false时提交表单,即当字段为空时

以及onsubmit事件中的条件onsubmit =“return fnCheckEmptyField();显示错误 无法从外部返回功能或方法。

你能弄清楚我提出的错误是什么,可能的解决办法吗?

2 个答案:

答案 0 :(得分:0)

删除表单上的onsubmit事件,然后在提交按钮HTML中输入

   <input type="submit" id="btnValidityCheck" value="Check Validity" onclick="return fnCheckEmptyField();" />

答案 1 :(得分:0)

除了Furqan所说的,您应该使用按钮和onclick事件来检查表单,如果表单有效,则在表单上调用.submit()。

我倾向于甚至不使用提交按钮,我只有一个普通的按钮,并让它运行javascript ...然后javascript提交表单。

示例(HTML提交按钮):

<button id="btnValidityCheck" value="Check Validity" onclick="return fnCheckEmptyField();">Click Here</button>

Javascript功能:

function fnCheckEmptyField() {
   var strDomain= document.getElementsByName("txtIIDN").value;
   if(strDomain == "") {
      document.getElementById("lblValidityStatus").innerHTML="Domain Name Field Can't be Left Blank";
   }
   else {
      document.getElementById("myFormId").submit();
   }
}

请注意,如果javascript认为表单有效,那么它将提交您的表单。您需要为表单标记定义一个id才能生效。

另外,我将== null检查更改为==“”......可能导致问题...

干杯!