0

我正在尝试使用我编写的一些 javascript 代码验证 HTML 表单,但是当我使用此标签创建表单时

    <form name="inputForm" action="http://postcatcher.in/catchers/51eefe8cd1c7b60200000530" method="post" onsubmit="return validateForm()">

尽管违反了我编写的 validateForm() 函数中详述的条件,但表单仍能顺利提交。我对该功能进行了四次检查,几乎可以肯定那里没有任何问题。我在这里错误地使用了某种语法还是我在其他地方的问题?

编辑:简而言之,这是 validateForm() 函数

function validateForm() {
if(document.inputForm.Title===null || document.inputForm.Title==="") {
    alert("Title required");
    document.inputForm.Title.focus();
    return false;
}
}

编辑2:问题与发布的代码无关,我忘记为表单中的一个字段设置一个ID。

4

3 回答 3

1

我使用相同的逻辑来防止双击 javascript。如果表单无效,请确保您的函数 ValidateForm 返回 false。

我的例子:

function FirstSubmitOnly() 
    {
        if (haveSubmitted)
             return false;

        haveSubmitted = true;
        return true;
    }
于 2013-07-24T16:37:52.267 回答
0

您必须使用value对象的属性。

document.inputForm.Title.value

所以你的js应该像

function validateForm() {
if(document.inputForm.Title.value===null || document.inputForm.Title.value==="") {
    alert("Title required");
    document.inputForm.Title.focus();
    return false;
}
}

而且,document.inputForm.Title.value永远不会null。所以在if条件下,

if(document.inputForm.Title.value==="")

也将工作

于 2013-07-24T18:26:10.893 回答
-3

您不应该将事件(onsubmit)添加到 html 元素,而是使用事件处理程序 :) 我的原生 JS 在这方面不是很好,我使用 jQuery 分配:

$(document).on('submit', '#form', function(event){
    if( validateForm() !== true ){ event.preventDefault(); } 
});

那将是这样的:

document.getElementById("form").onsubmit=function(){ 
    return validateForm()}; 
}

你确定你的函数返回真/假吗?因为你的内联代码返回函数的返回值,你确定有吗?

于 2013-07-24T16:34:25.137 回答