我有一个表格,我想使用jQuery验证插件。我的问题是,我无法访问成功回调中的标签。我可以得到label.attr('for')
,但是当我尝试label.attr('id')
或label.html()
时,我得到未定义。jquery验证插件无法访问成功回调标签
这里是我的调用validate:
<script type="text/javascript">
$(document).ready(function() {
$('#personal_info').validate({
rules: {
LastName: "required",
Age: "required"
},
messages: {
LastName: "",
Age: ""
},
errorPlacement: function(error, element) {
console.log('element.attr = '+element.attr('name'));
if(element.attr('name') == 'Age') {
console.log('element = '+element.parents().siblings('label').html());
element.parents().siblings('label').removeClass('highlight').addClass('warning');
}
//error.insertBefore(element.parent().children("br"));
},
// specifying a submitHandler prevents the default submit, good for the demo
submitHandler: function() {
document.personal_info.submit();
},
validClass: "checkmark",
// set this class to error-labels to indicate valid fields
success: function(label) {
console.log('the label for = '+label.attr('for'));
console.log('the label id = '+label.attr('id'));
}
});
});
</script>
这里是我的一块HTML的:
<label for="Age" id="age18" class="highlight"> Are you at least 18 years of age?</label>
<table id="OnlineAppWizard_InputAge18" border="0">
<tr>
<td>
<input id="Age18_yes" type="radio" name="Age" value="Yes" <?
if ($Age18 == "Yes") {
print "checked";
}
?>/>
<label for="Age18_yes">Yes</label>
</td>
<td>
<input id="Age18_no" type="radio" name="Age" value="No" <?
if ($Age18 == "No") {
print "checked";
} ?>/>
<label for="Age18_no">No</label>
</td>
</tr>
</table>
当我在单选按钮一按,这是出现在Firebug控制台:在
the label for = Age
the label id = undefined
您可以从html代码片断中看到标签标签的“for”属性为“Age”,al所以具有“age18”的“id”属性
你可以提供链接到jquery验证库吗? –
http://docs.jquery.com/Plugins/Validation。我在旧版本,但我试图更新到最新版本,并没有帮助。 – Catfish
你能举一些我们可以看到这个问题的实例吗? –