我有一个带有下拉列表的表单经过验证,验证工作正常,但如果用户选择默认值以外的任何选项,表单将不会提交。
我以更易于阅读的格式创建了当前代码的 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();
}
});
答案 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