0

小さなjqueryコードに問題があります。エラーメッセージをスパンに挿入しようとしていますが、スパンを正しく見つけることができないと思います。

これが私の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') を指定すると、完全に機能します。しかし、IDなしでそれを行う必要があります。助けてください

4

2 に答える 2

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 間に別の要素を追加すると、機能しなくなります。

クラスセレクターを使用してメッセージを追加するよりも、スパンにクラスを追加したいと思います。

于 2013-03-04T16:00:35.523 に答える
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"))

デモ:フィドル

于 2013-03-04T16:14:53.470 に答える