jQuery Validate Plugin覆盖我的select onChange回发

时间:2010-05-28 12:18:07

标签: c# .net jquery sharepoint

我正在创建这个表单(.net),其中我有一个带回发的select,它会根据我选择的选项触发一个动作。我正在尝试使用jQuery Validate Plugin(plugin website)来验证我的表单。

我的问题是,当我验证表单,并且我的select被标记为无效时,验证插件会覆盖它的onChange方法,以便在我更改值时取消标记,事实是它正在从onchange中删除我的__dopostback,使形式'无用'。

有没有办法让插件验证我的选择而不从onchange中删除我的回发操作?

2 个答案:

答案 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。