一尘不染

无法从函数或方法外部返回?

jsp

在开发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

我不知道我的代码有什么问题,为什么 无法从函数或方法外部返回 此错误?

原因是什么,我该如何解决?


阅读 464

收藏
2020-06-08

共1个答案

一尘不染

onsubmit="return fnCheckEmptyField()" 显示错误的行无法从函数或方法外部返回

这是特定于Eclipse的。Eclipse在这里是错误的,那行是完全可以的。只需忽略Eclipse错误。如果需要,可以随时禁用其JS验证。


并且在执行Java脚本功能表单后,无论文本字段是否为空白,都将提交提交。

那是因为您的JavaScript函数是错误的。您的JS代码中有2个错误。

  1. getElementsByName()调用不正确。
    var strDomain = document.getElementsByName("txtIIDN").value;
    

要通过ID检索元素,您需要getElementById()

    var strDomain = document.getElementById("txtIIDN").value;
  1. 空值不是null,而是空字符串。
    if (strDomain == null)
    

您需要检查其长度。

    if (strDomain.length == 0)

或者只是利用JS布尔魔术。

    if (!strDomain)

顺便说一句,document.getElementById("lblValidityStatus").innerHTML = "";此代码中该行是不必要的。

2020-06-08