1

次の方法で、twitter ブートストラップを使用して作成されたフォームの data-async をキャッチしています。

 $('form[data-async]').live('submit', function(event) {
        var $form = $(this);
        var $target = $($form.attr('data-target'));
        var target_id = $target[0].id;

  ....
 }

問題のフォームで「username」という名前の入力を参照したい... $form.username、$form['username'] を試しましたが、役に立ちませんでした。入力。私は私が使用できることを知っています

  $('#formid input[name=bla]') 

でもフォームオブジェクトは既に持っているので、できればそれを使いたいです。

ありがとう

4

3 に答える 3

4

使用できます.find()

var $input = $form.find('input[name=bla]');

編集— コメンターのジャックは、フォーム DOM 要素の HTML5 の「要素」プロパティもあると指摘しています。これにより、名前または ID、または数値インデックスで入力を取得できます。

var input = this.elements['bla'];

名前によるアクセスは、メカニズムが要素の「id」プロパティも考慮するという事実によって複雑になります(実際、それらが優先されると思います)。

于 2012-12-29T14:55:49.353 に答える
2

送信ハンドラー内で、username入力フィールドは次の方法で簡単に参照できます。

this.elements['username']

派手なjQueryは必要ありません:)

アップデート

elementsかなり最近の追加であることに気づきませんでした。その前に、次を使用できます。

this.username

更新 2

shimmed バージョンは次のようになります。

var field = this.elements ? this.elements['username'] : this.username;
于 2012-12-29T15:00:11.247 に答える
1

フォームオブジェクトをセレクターのコンテキストとして使用して、コンテキスト内の要素を見つけることができます。

構文:jQuery( selector [ , context ] )

$('input[name=bla]', $form );

フォームを表すので、これを使用できます。

$('form[data-async]').live('submit', function(event) {

     $('input[name=bla]', this ); // this is your form

 })
于 2012-12-29T14:57:19.733 に答える