37

データベースから動的に入力されている選択ボックスがあります。現在のところ、このチェックボックスの数は問題なく機能しています。

クリックすると呼び出すボタンで構成される機能を追加しましたisSelextBoxEmpty。この関数の役割は、この特定のチェックボックスが設定されているかどうかを知ることです。そうでない場合は、単に何もしません。

私の問題は、この選択ボックスが空かどうかを判断することです。

これが私が扱っているものの非常に単純化された例です:

<li>
    <label for="fruit_name">Fruit</label>
    <select name="some_fruit" id="fruit_name" onclick="populate_box('fruit', this);">
    </select>
</li>

別のボタンから呼び出される私の関数は、次のようになります。

function isSelextBoxEmpty(selectBoxId) {
    var selected_value = $('#fruit_name');

    /* More options... still testing the proper way:
    var selected_value = $('#fruit_name').text;
    var selected_value = $('#fruit_name').value;
    var selected_value = $('#fruit_name').length;
    var selected_value = $('#fruit_name option:selected', this);
    var selected_value = document.getElementById('fruit_name');
    var selected_value = document.getElementById('fruit_name').length;
    var selected_value = document.getElementById('fruit_name').value;
    var selected_value = document.getElementById('fruit_name').innerHTML;
    */

    if (selected_value) {
        alert("NOT null, value: " + selected_value);
        // do something
    }
}

これが何をするのか、どのように行うのかを心配する必要はありません。今のところ私にとって重要なのは、チェックボックスが空かどうかを確認できないことです。どうすればよいかわかりません。私はフォーラムやドキュメントをよく読んでいますが、実装自体に依存するため、これを行うことには多くの意味があります。

たとえば、を使用してdocument.getElementById(...)...も必ずしもfalseが返されるわけではなく、使用方法によって異なります。また$("#someID")...、jQueryで使用すると、目的の結果が得られる場合と得られない場合があります。コメント行でわかるように、私はすでに何度も試しましたが、それらはすべてif(...)ステートメントで評価できます。

これを達成する方法について何か提案やアイデアはありますか?前もって感謝します!

4

4 に答える 4

98

選択ボックスに値があるかどうかを確認するには:

if( $('#fruit_name').has('option').length > 0 ) {

選択した値が空かどうかを確認するには:

if( !$('#fruit_name').val() ) { 
于 2012-06-14T19:06:23.937 に答える
13

選択した値を取得する正しい方法の1つは、

var selected_value = $('#fruit_name').val()

そして、あなたはする必要があります

if(selected_value) { ... }
于 2012-06-14T19:04:27.507 に答える
2

選択した値を取得する別の正しい方法は、このセレクターを使用することです。

$("option[value="0"]:selected")

あなたに最適!

于 2014-03-25T19:21:07.710 に答える
0

この回答を確認して、テスト済みでうまく機能している

if( !$('#id').val() ) {
   // stuff here
}
于 2021-04-13T09:22:49.487 に答える