这是一个相当基本的调查表格;我正在使用JQuery根据用户选择有条件地显示/隐藏字段。
//FORM CONDITIONALS Hides all the helpfulness radios and only shows them when "Yes" for a particular question is checked
$("#datainp .occurrence").click(function () {
var nexttd = $(this).next('td');
if ($(this).children("input:first").is(':checked')) {
$(nexttd).show();
$(nexttd).children("input").removeAttr("checked");
} else {
$(nexttd).hide();
}
我也有一个客户端验证功能:
//Client side validation and submissions
$('#submit').click(function(e) {
e.preventDefault();
var level = $('#Level').val();
var schoolid = $('#school').val();
if (!schoolid) {
alert("Please select a school!");
return;
}
if (!level) {
alert("Please select a grade level!");
return;
}
alert("foo");
$('#frmTeacherEvalGuidance').submit(function() {alert("bar") });
});
除了验证结束时的.submit()之外,所有内容都有效(警告验证)。我的表单条件部分中的内容是否与.submit()冲突?当我注释掉javascript的第一部分时,表单按照预期提交。 JsFiddle就在这里:http://jsfiddle.net/r4Y4g/1/(我知道,html有点笨重,但不是我的;更新旧的团队项目)
答案 0 :(得分:1)
您应该使用.stopPropagation()而不是.preventDefault()
试试这个:
//Client side validation and submissions
$('#submit').click(function(e) {
e.stopPropagation();
var level = $('#Level').val();
var schoolid = $('#school').val();
if (!schoolid) {
alert("Please select a school!");
return false;
}
if (!level) {
alert("Please select a grade level!");
return false;
}
return true;
});
答案 1 :(得分:0)
您可以改为添加一个监听器:
$("#frmTeacherEvalGuidance").on("submit", function () {
alert("bar");
});