表单在JavaScript验证时不提交

时间:2014-02-19 18:38:22

标签: javascript forms validation

我有一个带有下拉列表的表单经过验证,验证工作正常,但如果用户选择默认值以外的任何选项,表单将不会提交。

我以更易于阅读的格式创建了当前代码的 jsfiddle

为什么我的表单没有提交?

的JavaScript

$('#btncheck').click(function () {
    if ($("#mySelect ")[0].selectedIndex <= 0) {
        alert("Please select a tank from the menu!");
        return false;
    } else {
        return true;
        form.submit();
    }
});

4 个答案:

答案 0 :(得分:4)

return之后的任何内容都不会触发:

return true;
form.submit(); 

答案 1 :(得分:1)

这是因为return true以上form.submit();语句您需要切换这些语句的顺序。

$('#btncheck').click(function(){
    if ($("#mySelect")[0].selectedIndex <= 0) {
         alert("Please select a tank from the menu!");
         return false;
    }
    form.submit(); 
    return true;
});

(我还清理了一些代码。)


我已经编辑了你的JSFiddle,并提出了一个有效的例子。 http://jsfiddle.net/36JZL/44/您可以看到弹出警告框时会到达提交表单的代码部分。


要回答你的上一条评论,我已经更新了JSFiddle。 http://jsfiddle.net/36JZL/46/。这会更改下拉列表的背景颜色,并在其下方显示错误消息。

答案 2 :(得分:0)

   $(document).ready(function() {
$('#btncheck').click(function(){
     if ($("#mySelect ")[0].selectedIndex <= 0) {
         alert("Please select a tank from the menu!");
                return false;
                }
    else {
        //return true;
        $('form').submit(); 
    }
});
});

P.S。在表单中添加动作标签(例如action ='server-side.php'),否则表格将被提交/处理到/在同一页面上(也许你想要它,不知道)和方法(我想你不要'我想要默认 - GET)

答案 3 :(得分:0)

返回是任何函数的终点!

返回后放置的任何内容都不会执行。

我建议您使用带断点的分步调试器,这里是chrome dev工具的指南 https://developers.google.com/chrome-developer-tools/docs/javascript-debugging