2

次のように、jQuery Validation DOCS の「errorPlacement」を使用しようとしています。

$("#myform").validate({
    errorPlacement: function(error, element) {
        error.insertAfter(element);
    }
});

ここまでは順調ですが、私が本当に望んでいるのは、それぞれの場合に入力とエラー ラベルの間に<br />タグを挿入することです。

<input>
**<br />**
<label class="error">

私は試してみました:

error.insertAfter(element.append($('<br />'));

...しかし、運が悪い。それを行う簡単な方法はありますか?どんな助けでも大歓迎です。

4

2 に答える 2

3

あなたはそれをする必要はありません。

オプションを使用してerrorElement、デフォルトのエラー要素をlabel(インライン) からdiv(ブロック) に変更するだけで、自動的に次の行に折り返されます。

$("#myform").validate({
    errorElement: "div", // default is 'label'
    errorPlacement: function(error, element) {
        error.insertAfter(element);
    }
});

そうでなければ、あなたのコード...

error.insertAfter(element.append($('<br />'));
  • 閉じ括弧がありません。)
  • は正しい形式ではありません... jQuery セレクター内に追加する文字列を配置しません。$()

だろう...

error.insertAfter(element.append('<br />'));

ただし、コンテンツを の中append()入れようとしているため、それでも意図したとおりには機能しません。element


この方法は、要求どおりに機能します...

$("#myform").validate({
    errorPlacement: function(error, element) {
        element.after(error).after('<br/>');
    }
});

デモ: http://jsfiddle.net/1pfvug7r/

于 2014-12-11T19:29:03.183 に答える
0

これを試して:

$("#myform").validate({
    errorPlacement: function(error, element) {
        error.insertAfter(element);
        $('<br/>').insertAfter(element);
    }
});

ただし、css を使用できます。

input, 
label.error {float:left;clear:both;}
于 2014-12-11T19:31:01.560 に答える