所以我使用Telerik的下拉列表获取了许多表单输入,我也在验证它们是不是空的jquery客户端。这就是我所拥有的 - 它肯定会验证控件,但我不能通过查找它的父级来为对象添加类。
Jquery的:
function validateCombo(source, args) {
var combo = $find("<%= listWorkType.ClientID %>");
var text = combo.get_text();
if (text.length < 1) {
args.IsValid = false;
combo.parents("div.selectWrap").addClass("error");
}
else {
args.IsValid = true;
combo.parents("div.selectWrap").removeClass("error");
}
}
达网络
<div class="selectWrap"> <rad:RadComboBox ID="listWorkType" Width="338" runat="server" InputCssClass="dropdown"></rad:RadComboBox></div>
<asp:CustomValidator ID="RFVDesiredJob" runat="server" Display="Dynamic" CssClass="formtext" ClientValidationFunction="validateCombo" ErrorMessage="Required" ></asp:CustomValidator>
正如你从jquery中看到的那样,我想在div中添加一个'error'类,它包含了被验证的下拉列表。如上所述,验证工作正常,但div .selectWrap不会添加类。
我总是可以按类引用div或者创建一个ID但是我正在做这个以获得一些下拉,我正在寻找一个统一的解决方案。
非常感谢任何见解。感谢。
答案 0 :(得分:0)
看起来你正在尝试在非jQuery对象上使用jQuery,$ find会提取你的Telerik客户端对象,因此combo.parents(..)会抛出异常。你可以尝试这样的事情:
function validateCombo(source, args) {
var combo = $find("<%= listWorkType.ClientID %>");
//fetch the jQuery element as well
var jqueryComboItem = $('#' + "<%= listWorkType.ClientID %>");
var text = combo.get_text();
if (text.length < 1) {
args.IsValid = false;
jqueryComboItem.parents("div.selectWrap").addClass("error");
}
else {
args.IsValid = true;
jqueryComboItem.parents("div.selectWrap").removeClass("error");
}
}