2012-03-04 25 views
-1

特定のオプションが選択されているときに、選択ボックスがある場合は入力ボックスを表示しようとしています。ここで選択ボックスの入力ボックスを開くjQuery

は私のコードです:

$("document").ready(function() { 
    $('input.other').hide(); 
    $('#amount').change(function() { 
     // var val = $(this).find('option:selected').text(); 
     //alert(val); 
     var selectedValue = $(this).find(":selected").val(); 
     //alert(selectedValue); 
     if($(this).selectedValue == '25.00') { 
      // only if the radio button has a dob-field 
      $('input.other').show();// show only the following first 
     } 
    }); 
}); 
+0

は、あなたの質問に手の込んだ –

+0

コード内の多くのエラーがあります。これは '$(document).ready(function(){})'です。それは 'if($(this).selectedValue == '25 .00 ')'ではなく 'if(selectedValue == '25 .00')' ...そして '$( 'input.other')。 2行目で行ったことを否定します。 –

+0

最初の文章を言い換えてみることができますか?現在の形ではそれほど意味をなさない。 –

答えて

2

は、あなたが内部の選択optionをターゲットにすることができています#amount要素以下のセレクタを使用して直接、値を見つけて、if文内のすべてを比較してください。

問題のコードの問題は$(this)#amountなくoptionを参照している$(this).selectedValue、あり、そしてselectedValueは可変であり、直接使用する必要がありますが、それはとして、ここでは変数を使用することが本当に必要はありませんif文の中ですべてを行うことは、完全に読みやすく、簡単です。

$('input.other').hide(); 
$('#amount').on('change', function(){ 
    if($(':selected', this).val() == '25.00') { 
     $('input.other').show(); 
    } 
}); 
+0

あなたは、彼の間違いが何であったか、あなたのコードが何をしているのかを説明したいかもしれません。そうすれば、あなたの答えは将来の世代の開発者にとっても役立ちます。 –

+0

@OctavianDamiean - 幸せ:-) – adeneo

+0

絶対に。ありがとうございました! –

1

使用selectedValueここではない$(this).selectedValue

if(selectedValue == '25.00') { // only if the radio button has a dob-field 
$('input.other').show();// show only the following first 
} 

をチェックするために、完全な作業スニペット

$(document).ready(function() { 
    $('input.other').hide(); 
     var selectedValue = $(this).find(":selected").val(); 
     if(selectedValue == '25.00') { 
      // only if the radio button has a dob-field 
      $('input.other').show();// show only the following first 
     } 
    }); 
}); 
+0

ドキュメントが入力ボックスを読み込んで、otherのクラスがコードで表示されているとき。 – user1235905

+0

@ user1235905、あなたのコードはありません。私は質問の範囲外にステップしたいとは思わない – Starx

1

あなたは(#amountSELECT要素があると仮定して):selectedOPTIONを選択するのではなく、SELECTに直接.val()を使用することができます。

var input = $('input.other').hide(); 
$('#amount').change(function() { 
    if($(this).val() == '25.00') { 
     input.show(); 
    } 
}); 

デモ:http://jsfiddle.net/bj6MJ/

を追加しました:仮定しますユーザーが「25」以外の何かを選択した場合には、再び非表示にしたい0.00" 、あなたはtoggle()を使用することができます。

var input = $('input.other').hide(); 
$('#amount').change(function() { 
    input.toggle($(this).val() == '25.00'); 
}); 

デモ:http://jsfiddle.net/bj6MJ/1/

関連する問題