2011-01-12 9 views
0

jQueryでドロップダウンの値を取得するクリックイベントを書き込むにはどうすればよいですか?私は持っています:jqueryのドロップダウンの値を取得

var select = $('select #dealerName'); 
    $(function { 
     select.click(function { 
      alert($('#dealerName').val()); 
     }); 

    }); 

私はちょうど価値を得ることを試みています - それは私がそれを警告している理由です。クリック機能はどのように見えますか?私のドロップダウン上のIDは "dealerName"です。上記は何も警告していません。

答えて

5

あなたが

var select = $('select#dealerName'); 

でなければなりません正しく

var select = $('select #dealerName'); 

それを選択していないですので、しかし...私はあなたがそれを選択した後の値を取得したいと仮定していますか?ドロップダウンを開くとすぐに警告が表示されます。代わりに.click()を使用しての

は、.change()

EDITを使用します。は個人的に私はちょうどオブジェクトに直接ハンドラを添付します。

$('select#dealerName').change(function() { 
    alert($(this).val()); 
} 
+0

。 jqueryがまったく呼び出されているかどうかをテストするにはどうすればよいですか? – sehummel

+0

更新された答え、私はちょうどオブジェクトで直接呼び出すだろう。 – jondavidjohn

+0

あなたの関数呼び出しもファンキーに見えます:$(function(){ –

0

まあ、私はいくつかの可能性のあるエラーを参照してください。

は、最初の行セレクタにスペースを削除します。

select#dealername 

これは、「idがdealernameのselectタグ」を意味します。あなたのバージョンは "selectタグのであるdealernameと呼ばれる要素"です。

また、インライン関数を記述するときは、functionキーワードの後に​​put()を記述します。

1

ファイブもの:

  1. あなたのjavascriptのコードは、ドキュメントの一番下にある場合を除き、あなたは$(関数(){})内すべてあなたのjQueryを含める必要があります。 - 今のように、DOMのアクセス準備が整う前に選択項目を探します。

  2. <select>要素のIDが#dealerNameある場合

    は、お使いのjQueryのセレクタは$(「#のdealerName」)になるだろう - それが今であるとして、あなたが指定したIDを持つ<select>に子孫を探しています。また、#dealerNameを選択したくないのは、IDがユニークであることを意味し、タグがjQueryを遅くすることだけを指定するためです。

  3. clickは、新しいオプションが選択されたときとは対照的に、誰かが選択をクリックするとすぐに起動します。おそらく、取引の大きすぎない

  4. changeをしたいが、すぐにjQueryのラップが何であるかを伝えることができるように先頭に$とjQueryのラッパーを参照する変数に名前を付けるために、わずかに人気の慣習があります。イベントインサイド

  5. がすばやくthis

で問題になっている要素を参照することができます呼び出すので、作業の例では、次のようになります。何も警告しません

$(function() { 
    $('#dealerName').change(function() { 
     alert($(this).val()); 
    }); 
}); 
関連する問題