0

この表示/非表示機能はSelect要素で正しく機能しますが、MultiSelect要素(multiple = "multiple")に変更したり、要素の名前に角かっこを追加したりすると(MultiSelectフォーム要素をデータベースに送信するために必要)、機能しなくなります。 )。MultiSelect要素で機能するように変更するにはどうすればよいですか?

実用的な例はここにあります:http://jsfiddle.net/chayacooper/yaq5F/8/

JS

$(document).ready(function () {
    $("#row1, #row2").hide();
    if ($("[name=item1]").val() === "Null" || $("[name=item1]").val() === "") {
        $("#row1").show();
    } else {
        $("#row2").show()
    };
});

HTML

<div id=row1 style="font-weight:bold">Row 1 - Nothing selected</div>
<div id=row2 style="font-weight:bold; display:none;">Row 2 - Something selected</div>

<select name=item1 class="field">
<option value="Null">Select</option>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 3</option>
</select>
4

1 に答える 1

2

このオプションを使用するmultiple場合、Ctrlキーを押したままにすると複数の値を選択できるため、戻り値は文字列ではなく配列になります。

次のような値で値を確認することをお勧めします$.inArray("Null", $(".field").val())


将来の参考のために、戻ってくる価値が何であるかを見て確認することは本当に役に立ちます。console.log($(".field").val())何が起こっているのかを確認するために私がしたのは単純なことだけです。

于 2013-02-14T21:48:10.677 に答える