我遇到了一个小的jquery代码问题。我试图将错误消息插入span,但我想我无法正确找到跨度。
这是我的HTML代码......
<div>İsim <span style="font-size:9px;color:red"></span></div><div style="line-height: 3px"> </div><div><input type="text" id="txt_isim" onkeypress="$('#txt_isim_4').val($('#txt_isim').val());" onKeyUp="$('#txt_isim_4').val($('#txt_isim').val());" style="width: 200px" class="blue_input required" minlength="3" /></div><div style="line-height: 6px"> </div>
这是jquery代码
<script>
$(document).ready(function () {
$("#txt_isim").validate({
submitHandler: function () {
return false;
},
errorPlacement: function (error, element) {
error.appendTo(element.prev().parent("span"));
}
});
});
</script>
我正在尝试验证“txt_isim”并在范围中显示错误消息。但我想我无法找到PREV()和PARENT()函数的跨度。我的代码出了什么问题?
注意:如果我给出一个ID来跨越并放入$('#id_span'),它的效果非常好。但我需要在没有身份证的情况下这样做。请帮忙
答案 0 :(得分:1)
你可以试试这个:
<script>
$(document).ready(function () {
$("#txt_isim").validate({
submitHandler: function () {
return false;
},
errorPlacement: function (error, element) {
error.appendTo(element.parent().prev().prev().children('span'))
}
});
});
</script>
小提琴:http://jsfiddle.net/Hkkyp/1/
但这不是安全的方式,因为它取决于你的html结构,如果你在div之间添加另一个元素,它将不再起作用。
我希望在您的范围中添加一个类,而不是使用类选择器添加您的消息。
答案 1 :(得分:0)
在您的情况下,我建议您为与单个字段相关的多个部分设置容器元素
<div class="field">
<div>Isim
<span class="error-handler" style="font-size:9px;color:red"></span>
</div>
<div style="line-height: 3px"> </div>
<div>
<input type="text" id="txt_isim" onkeypress="$('#txt_isim_4').val($('#txt_isim').val());" onKeyUp="$('#txt_isim_4').val($('#txt_isim').val());" style="width: 200px" class="blue_input required" minlength="3" />
</div>
<div style="line-height: 6px"> </div>
</div>
然后在errorPlacement
error.appendTo(element.closest('.field').find(".error-handler"))
演示:Fiddle