0

<select>私のphpファイルに送信するために、いくつかのjqueryの要素で選択したオプションの値を送信する必要があります。

残念ながら、私はそれに対して未定義の値を取得し続けています...

<select name="query" id="query">
    <option value="join-us">Join Us</option>
    <option value="work-with-us">Work with us</option>
    <option value="about-pf">About Planet Fitness</option>
    <option value="other">Other</option>
</select>

var query = $('#query option:selected').text();

console.log('query = ' + query);

console.log が返されます

クエリ = 未定義

私は使用してみまし$('#query').val();$('#query').text();

ここで他に何をすべきかわかりません。

:selected疑似クラスには、マークアップに次のように表示するオプションが必要なようです。

<option value="bla" selected="selected">bla</option>

明らかに、私はこれらを見逃していますが、ドロップダウンでの選択を変更してもこれは変更されず、自分でマークアップに追加する意味はないと思います...

どんな援助でも大歓迎です

4

5 に答える 5

1

使用する必要があります.val()

$('#query').change(function () {
    var query = $(this).val();
    $('#result').html('query = ' + query);
});

$('#query').val()送信する瞬間に電話をかける必要があります。

http://jsfiddle.net/33GSy/1/

于 2013-02-21T14:31:18.820 に答える
1

どうぞ... jQuery 1.8.3 を使用して...


実験 1 :ライブ デモ

コード

<select name="query" id="query">
    <option value="join-us">Join Us</option>
    <option value="work-with-us">Work with us</option>
    <option value="about-pf">About Planet Fitness</option>
    <option value="other">Other</option>
</select>

<script>
    var query1 = $('#query option:selected').text();
    var query2 = $('#query').val();
    var query3 = $('#query').text();

    alert('query1 = ' + query1 + '\nquery2 = ' + query2 + '\nquery3 = ' + query3);
    console.log('query1 = ' + query1 + '\nquery2 = ' + query2 + '\nquery3 = ' + query3);
</script>

出力

クロム:

query1 = Join Us
query2 = join-us
query3 = 
    Join Us
    Work with us
    About Planet Fitness
    Other

いいえ:

query1 = Join Us
query2 = join-us
query3 = Join Us Work with us About Planet Fitness Other

ファイアフォックス:

query1 = Join Us
query2 = join-us
query3 = 
    Join Us
    Work with us
    About Planet Fitness
    Other

実験 2 :ライブ デモ

コード

    <script>
        function getMyValue() {
            var query1 = $('#query option:selected').text();
            var query2 = $('#query').val();
            var query3 = $('#query').text();

            alert('query1 = ' + query1 + '\nquery2 = ' + query2 + '\nquery3 = ' + query3);
            console.log('query1 = ' + query1 + '\nquery2 = ' + query2 + '\nquery3 = ' + query3);
        }
    </script>
</head>

<body>
    <select name="query" id="query">
        <option value="join-us">Join Us</option>
        <option value="work-with-us">Work with us</option>
        <option value="about-pf">About Planet Fitness</option>
        <option value="other">Other</option>
    </select>

    <button onclick="getMyValue();">Click Me</button>
</body>

出力(「Work with us」を選択してボタンをクリック)

クロム:

query1 = Work with us
query2 = work-with-us
query3 = 
    Join Us
    Work with us
    About Planet Fitness
    Other

いいえ:

query1 = Work with us
query2 = work-with-us
query3 = Join Us Work with us About Planet Fitness Other

ファイアフォックス:

query1 = Work with us
query2 = work-with-us
query3 = 
    Join Us
    Work with us
    About Planet Fitness
    Other

推論

コードは正常に動作します。呼び出し方法に問題があるはずです。アラートをあちこちに配置してみてください...

于 2013-02-21T15:49:24.027 に答える
0

これは問題なく機能します。

var query = $('#query option:selected').text();
console.log('query = ' + query);

以下のjsFiddleを参照してください。

http://jsfiddle.net/FJCSu/3/

于 2013-02-21T14:33:31.470 に答える
0
$('#query option').filter(':selected').val();

JSFIDDLEを参照してください

于 2013-02-21T14:27:48.193 に答える
0

いつ電話してい$('#query option:selected').text();ますか?

これは私にとってはうまくいきます:

$('#query').change(function() {
    var query = $('#query option:selected').text();

    console.log('query = ' + query);
})

JSFiddle

編集:反対票とは何ですか?私が提供した例は、Chrome と IE で正常に動作します。

これは、ボタンクリックイベントでまったく同じことを示す更新バージョンです: JSFiddle

于 2013-02-21T14:26:08.453 に答える