在开发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函数表单之后,无论文本字段是否为空,都无法提交。
onsubmit="return fnCheckEmptyField()"
我已将警报放置在if条件中,并且可以确保如果字段为空,则函数将返回false。
if
false
我不知道我的代码有什么问题,为什么 无法从函数或方法外部返回 此错误?
原因是什么,我该如何解决?
onsubmit="return fnCheckEmptyField()" 显示错误的行无法从函数或方法外部返回
这是特定于Eclipse的。Eclipse在这里是错误的,那行是完全可以的。只需忽略Eclipse错误。如果需要,可以随时禁用其JS验证。
并且在执行Java脚本功能表单后,无论文本字段是否为空白,都将提交提交。
那是因为您的JavaScript函数是错误的。您的JS代码中有2个错误。
getElementsByName()
var strDomain = document.getElementsByName("txtIIDN").value;
要通过ID检索元素,您需要getElementById()。
getElementById()
var strDomain = document.getElementById("txtIIDN").value;
null
if (strDomain == null)
您需要检查其长度。
if (strDomain.length == 0)
或者只是利用JS布尔魔术。
if (!strDomain)
顺便说一句,document.getElementById("lblValidityStatus").innerHTML = "";此代码中该行是不必要的。
document.getElementById("lblValidityStatus").innerHTML = "";