我正在使用jQuery Validation Engine插件来验证我的表单。根据条件,如果失败,我必须删除一个控件的验证,如果它成功,那么我必须分配验证,反之亦然。
//代码:
HTML:
<asp:DropDownList runat="server" ID="ddlTransporterType" class="validate[required]" onchange="disableCourier()">
<asp:ListItem Text="Select" Value=""></asp:ListItem>
<asp:ListItem Text="OwnVehicle" Value="1"></asp:ListItem>
<asp:ListItem Text="Transporter" Value="2"></asp:ListItem>
<asp:ListItem Text="Courier" Value="3"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList runat="server" ID="ddlCourierId">
<asp:ListItem Text="Select" Value="0"></asp:ListItem>
<asp:ListItem Text="Professional" Value="1"></asp:ListItem>
<asp:ListItem Text="STCourier" Value="2"></asp:ListItem>
</asp:DropDownList>
浏览器来源:
在分配之前:
<select name="ctl00$ContentPlaceHolder1$ddlCourierId" id="ContentPlaceHolder1_ddlCourierId">
<option value="0">Select</option>
<option value="1">Professional</option>
<option value="2">STCourier</option>
</select>
分配后:
<select name="ctl00$ContentPlaceHolder1$ddlCourierId" id="ContentPlaceHolder1_ddlCourierId" class="validate[required]">
<option value="0">Select</option>
<option value="1">Professional</option>
<option value="2">STCourier</option>
</select>
脚本:
function disableCourier() {
var e = document.getElementById('<%= ddlTransporterType.ClientID%>');
var f = document.getElementById('<%= ddlCourierId.ClientID%>');
var strUser = e.options[e.selectedIndex].value;
// alert(strUser);
if (strUser == 1 || strUser == 2){
f.disabled = true;
$('#<%= ddlCourierId.ClientID%>').removeClass("validate[required]");
}
else {
f.disabled = false;
$('#<%= ddlCourierId.ClientID%>').addClass("validate[required]");
}
}
上面的代码不起作用,这意味着没有错误,当我使用inspect元素检查时,类被分配,但在浏览器中验证不起作用。
任何帮助/想法?