JQuery Validator查找上一个元素

时间:2013-03-04 15:51:42

标签: jquery jquery-validate

我遇到了一个小的jquery代码问题。我试图将错误消息插入span,但我想我无法正确找到跨度。

这是我的HTML代码......

<div>İsim <span style="font-size:9px;color:red"></span></div><div style="line-height: 3px">&nbsp;</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">&nbsp;</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'),它的效果非常好。但我需要在没有身份证的情况下这样做。请帮忙

2 个答案:

答案 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">&nbsp;</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">&nbsp;</div>
</div>

然后在errorPlacement

error.appendTo(element.closest('.field').find(".error-handler"))

演示:Fiddle