在开发 Web 应用程序时,我想执行某些验证检查,只有在验证成功后,我才需要发布表单并将控件重定向到下一页。
JavaScript 代码:
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;
}
}
相关HTML代码:
<form action="Result.jsp" name="validityCheck" onsubmit="return fnCheckEmptyField()">
<input type="text" id="txtIIDN"/>
<input type="submit" id="btnValidityCheck" value="Check Validity" />
</form>
onsubmit="return fnCheckEmptyField()"
行显示错误无法从函数或方法外部返回,并且在执行 JavaScript 函数后无论怎样都会提交表单文本字段是否为空。
我在 if
条件下放置了警报,并且可以肯定的是,如果字段为空,函数将返回 false
。
我不知道我的代码有什么问题,也不知道为什么会出现 Cannot return from outside a function or method 错误。
这是什么原因,我该如何解决?
最佳答案
the line
onsubmit="return fnCheckEmptyField()"
showing an error Cannot return from outside a function or method
这是 Eclipse 特有的。 Eclipse 在这里是错误的,那条线非常好。忽略 Eclipse 错误。如果需要,您可以随时禁用其 JS 验证。
and after execution of the java script function form is getting submitted regardless the text field is blank or not.
那是因为你的 JavaScript 函数有误。您的 JS 代码中有 2 个错误。
getElementsByName()
调用不正确。var strDomain = document.getElementsByName("txtIIDN").value;
要通过 ID 检索元素,您需要
getElementById()
。var strDomain = document.getElementById("txtIIDN").value;
空值不是
null
,而是空字符串。if (strDomain == null)
您需要检查它的长度。
if (strDomain.length == 0)
或者只是使用 JS bool 魔法。
if (!strDomain)
顺便说一下,document.getElementById("lblValidityStatus").innerHTML = "";
行在这段代码中是不必要的。
关于javascript - 无法从函数或方法外部返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924335/