0

これにはおそらく非常に簡単な解決策がありますが、私の jQuery スキルはまだ十分ではありません。以下を使用して、ドロップダウンの値に基づいて div を表示および非表示にしています。「いいえ」と「」の両方が機能するように調整したいと思います。どうすればこれを達成できますか?

前もって感謝します

$('#q1').change(function(){
 if ($(this).val() == "No") {
 $('#divv').show();
 } else {
 $('#divv').hide();
 }
 });
4

6 に答える 6

0

toggle()正規表現で値を確認することで、状態を表示または非表示に使用および設定できます。

$('#q1').on('change', function(){
    $('#divv').toggle(this.value.match(/(no|^$)/i));
});

フィドル </p>

于 2012-08-03T18:56:17.900 に答える
0

論理OR演算子は次のことを行う必要があります。

$('#q1').change(function(){
    if (this.value == "No" || this.value == "") {
        $('#divv').show();
    } else {
        $('#divv').hide();
    }
});

jQueryオブジェクトを作成するために(特に2回も)使用したことはありませんが、プレーンな javascript$(this)を使用しただけです。必要に応じて、さらに簡潔に ( 3 番目の演算子not 演算子を使用して、空の文字列とブラケット表記をチェックします):

$('#q1').change(function(){
    $('#divv')[ (this.value == "No" || !this.value) ? "show" : "hide" ]();
});
于 2012-08-03T18:52:43.800 に答える
0

いくつかの方法があります。個人的には、次のようにします。

if( this.value.match(/(No)?/i)) {

i許可NOし、機能することnonOできます-「いいえ」のみが必要な場合は削除してください。

于 2012-08-03T18:31:41.937 に答える
0

この場合、JavaScript の論理 OR 演算子( ||) を使用できます。

$('#q1').change(function() {
    value = this.value;
    if (value == "No" || value == "") {
        $('#divv').show();
    } else {
        $('#divv').hide();
    }
}
);

実際、最も適応性の高い解決策は次のとおりです。if (value.toLowerCase() == "no" || value == "") {これは、どのような場合でも「いいえ」を受け入れます。

デモ: http://jsfiddle.net/SO_AMK/YKeFy/1/

編集: Kolink と Bergi を満たすためにコードを更新

于 2012-08-03T18:31:02.450 に答える
0

JavaScript の OR 演算子 ( ||) を使用します。

$('#q1').change(function(){
 var thisVal = $(this).val();
 if ((thisVal == "No") || (thisVal == "")) {
 $('#divv').show();
 } else {
 $('#divv').hide();
 }
 });
于 2012-08-03T18:31:05.323 に答える
-1

これをコピーして貼り付ければ、うまくいくはずです。

$('#q1').change(function(){
 if (($(this).val() == "No") || ($(this).val() == "")) {
 $('#divv').show();
 } else {
 $('#divv').hide();
 }
 });
于 2012-08-03T18:33:49.457 に答える