0

私はこのコードを使用しています: http://jsfiddle.net/q3nUS/

$('#cf11_field_20').change(function() {
  $("#li-11-22")[$(this).val() == "full03_accommodation_hotel" ? 'show' : 'hide']("fast");
}).change();

$('#cf11_field_22').change(function() {
  $("#li-11-23")[$(this).val() == "full03_hotel_other" ? 'show' : 'hide']("fast");
}).change();

最初のドロップダウンで「ホテル」が選択され、2番目のドロップダウンで「その他」が選択されている場合にのみテキストフィールドが表示されるように、正常に機能します。

しかし、最初のドロップダウンを「ホテル」以外に変更すると、明らかに、他の両方のフィールドを非表示にする必要があります。現在、テキスト フィールドはそのままです。

テキスト フィールドも非表示になるコードを変更するにはどうすればよいですか? 論理的に行う方法は知っていますが、構文に問題があります。

私はこのようなことを試しました:

    $('#cf11_field_20').change(function() {
      $("#li-11-22")[$(this).val() == "full03_accommodation_hotel" ? 'show' : 'hide']("fast");
      $("#li-11-23")[$(this).val() != "full03_accommodation_hotel" ? 'hide']("fast");
    }).change();  
    $('#cf11_field_22').change(function() {
      $("#li-11-23")[$(this).val() == "full03_hotel_other" ? 'show' : 'hide']("fast");
    }).change();

ここで適切な構文に本当に問題があります。ありがとう!

4

1 に答える 1

1

条件の後に を使用する場合condition ? value if true : value if false、 を省略できません。省略する:と、構文エラーになります (条件がfalse? の場合はどうなりますか)。条件が false のときに何も起こらないようにする場合は、if代わりに次のようなステートメントを使用します ( http://jsfiddle.net/q3nUS/2/ ):

if ($(this).val() != "full03_accommodation_hotel") $("#li-11-23").hide("fast");

お役に立てれば。

于 2010-08-27T12:54:47.690 に答える