我正在创建这个表单(.net),其中我有一个带回发的select,它会根据我选择的选项触发一个动作。我正在尝试使用jQuery Validate Plugin(plugin website)来验证我的表单。
我的问题是,当我验证表单,并且我的select被标记为无效时,验证插件会覆盖它的onChange方法,以便在我更改值时取消标记,事实是它正在从onchange中删除我的__dopostback,使形式'无用'。
有没有办法让插件验证我的选择而不从onchange中删除我的回发操作?
答案 0 :(得分:3)
我遇到了同样的问题。您无法阻止插件删除回发,但您可以重新创建它。 Here您可以找到提交问题的解决方案(查看Page_Load部分)。
答案 1 :(得分:1)
我知道这是一个旧帖子,但我有类似的情况,并能够像这样解决它。只是想我发布它以防万一其他人在这里发现。我正在使用jQuery Validation Plugin 1.9.0:
$('#aspnetForm').validate({
errorLabelContainer: "#messageBox",
wrapper: "li"
});
$("input[id$='myButton']").click(function () {
SetRules();
if ($('#aspnetForm').valid()) {
// form passed validation
} else {
$('#aspnetForm').resetForm();
return false;
}
});
function SetRules(){
$("select[id$='myDropDown']").rules("remove");
$("select[id$='myDropDown']").rules("add", {required:true});
}
我的验证器已设置,因此错误会在一个指定的div中显示。当我单击按钮时,验证将触发并显示该div中的所有元素,并标记无效的字段,包括select(所有选项均为红色),当我更改选择时,我的autopostback会触发并选择颜色改回旧值(假设选择通过了验证)。
我对这个插件很新,所以我无法解释它,但我的思考过程是尝试让表单验证并显示错误,然后将控件重置回原始状态同时仍然保持错误消息可见。我期待失去红色错误突出显示,但不知何故保留,同时还带回了选择的回发。
另外,我不知道以这种方式设定规则是否有助于这项工作;我不得不出于各种原因设置它们,最大的原因是需要选择.NET自动生成的ID。