0

この検証プラグインhttp://demos.usejquery.com/ketchup-plugin/を見たのですが、どうすれば入力の位置を特定できるのでしょうか? お気づきのように、そのプラグインを使用してメッセージを表示しますが、エラーのある入力がどこにあるかを正確に認識し、メッセージを正確にそこに置くにはどうすればよいでしょうか?

4

2 に答える 2

2

このプラグインのソース コード、具体的にはエラー メッセージ コンテナーのソース コードは次のようになります。

createErrorContainer: function(form, el) {      
  if(typeof form == 'function') {
    this.defaults.createErrorContainer = form;
    return this;
  } else {
    var elOffset = el.offset();

    return $('<div/>', {
             html   : '<ul></ul><span></span>',
             'class': 'ketchup-error',
             css    : {
                        top : elOffset.top,
                        left: elOffset.left + el.outerWidth() - 20
                      }
           }).appendTo('body');
  }
},

ご覧のとおり、.offset() メソッドを使用して、ドキュメントに対する入力フィールドの位置を取得しています。

詳細はこちら: http://api.jquery.com/offset/

于 2013-03-06T22:41:14.503 に答える
1

要素を (おそらく id で) 取得した後、生の JavaScript で:

element.offsetLeft
element.offsetTop

または、jQuery のクロスブラウザー.offset()関数を使用します。

検証のために、Html5 は既にこれを行っています。Javascript でバリデーションを行う必要はありません。また、ブラウザーがサポートしていない場合に html5 フォームの検証をサポートするpollyfillsも利用できます。

于 2013-03-06T22:39:48.340 に答える