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

标签 javascript html eclipse 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

我不知道我的代码有什么问题,也不知道为什么会出现 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 个错误。

  1. getElementsByName() 调用不正确。

    var strDomain = document.getElementsByName("txtIIDN").value;
    

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

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

    if (strDomain == null)
    

    您需要检查它的长度。

    if (strDomain.length == 0)
    

    或者只是使用 JS bool 魔法。

    if (!strDomain)
    

顺便说一下,document.getElementById("lblValidityStatus").innerHTML = ""; 行在这段代码中是不必要的。

关于javascript - 无法从函数或方法外部返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924335/

相关文章:

javascript - 当 tbody 中没有 tr 元素时删除表元素

javascript - SetTimeout 递归函数超出最大调用堆栈大小 (Javascript)

javascript - 如果更多元素具有此类,则 .click 函数不适用于类

jquery - 在 DIV 中显示文本而不是 HREF 标题标签,用于悬停时的 Jquery

html - CSS Align Text with Select 在同一行

css - 在 div 中滚动

javascript - jQuery 获取某些子元素的索引并忽略其他子元素

android - Eclipse 的模拟器(ArcGIS Android 应用程序)?

java - StringBuilder 中的一些红色文本覆盖了 Java 中的 toString

java - OS X El Capitan 上的 Eclipse 错误 : Could not find or load main class