javascript - 在另一个函数中调用 JS 函数

标签 javascript

我试图在另一个函数中调用一个函数,但它不起作用。

P.S 我是 JS 初学者

<script type="text/javascript">
    <!--
    // Form validation code will come here.
    function validate() {
        madatorychk(name);
        //This functions makes sure that madatory fields are filled
        function madatorychk(fieldid) {
            var node = document.myForm.fieldid;
            if (node.value == "") {
                alert("This field cannot be left empty");
                document.myForm.fieldid.focus();
                return false;
            }

        }
    }
    //-->
</script> 

<form method="get" onsubmit="return(validate());"  name="myForm">
    <label>Name: <input type="text" id="name"></label> </form>
</form>

最佳答案

您需要使用 bracket notation使用变量名访问对象属性。

因此 document.myForm.fieldid(它试图采用字面上名为 fieldid 的表单元素)是不正确的,应该是 document.myForm[字段id]:

function validate() {

    return madatorychk('name');

    //This functions makes sure that madatory fields are filled
    function madatorychk(fieldid) {
        var node = document.myForm[fieldid];
        if (node.value == "") {
            alert("This field cannot be left empty");
            document.myForm[fieldid].focus();
            return false;
        }
    }
}

为此还要确保您已命名表单元素:

Name: <input type="text" name="name" />

最后,非常重要的是你需要返回madatorychk的结果:

return madatorychk('name');

还有一件事。您可能不希望不仅允许空的用户名,而且也不想允许只有空格的用户名,因此在验证之前 trim 输入:

if (node.value.trim() == "") {
    alert("This field cannot be left empty");
    document.myForm[fieldid].focus();
    return false;
}

演示: http://jsfiddle.net/747twprf/

关于javascript - 在另一个函数中调用 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421093/

相关文章:

javascript - Jest : how to test console. 日志 haveBeenCalled 具有预期值的子集?

javascript - jQuery - 验证表单

javascript - 是否可以在单元格之间旋转(交替)表格内容?

javascript - 带有两个连续的自执行匿名函数的 TypeError

javascript - 如何从当前日期获取过去 12 个月的年份

javascript - 使用 Dojo,如何动态刷新 div?

JavaScript 性能分析

javascript - RegExp 不区分大小写的多词突出显示

javascript - 如何使用一个函数用对象替换数组中的多个特定字符串?

javascript - 在 ES6 中针对 `let` 和 block 作用域进行提升