JavaScript在现有脚本中隐藏其他文本字段

JavaScript在现有脚本中隐藏其他文本字段,javascript,select,textbox,show-hide,Javascript,Select,Textbox,Show Hide,我正在使用以下代码: 它工作正常,因此文本字段仅在以下情况下显示: 在第一个下拉列表中选择“Hotel”,在第二个下拉列表中选择“Other” 但一旦您将第一个下拉列表更改为“Hotel”以外的内容,我显然需要隐藏其他两个字段。当前,文本字段仍然保留 如何更改文本字段也被隐藏的代码? 我知道如何在逻辑上做到这一点,但我在语法上有问题 我试过这样的方法: $('#cf11_field_20').change(function() { $("#li-11-22")[$(this)

我正在使用以下代码:

它工作正常,因此文本字段仅在以下情况下显示: 在第一个下拉列表中选择“Hotel”,在第二个下拉列表中选择“Other”

但一旦您将第一个下拉列表更改为“Hotel”以外的内容,我显然需要隐藏其他两个字段。当前,文本字段仍然保留

如何更改文本字段也被隐藏的代码? 我知道如何在逻辑上做到这一点,但我在语法上有问题

我试过这样的方法:

    $('#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();
这里的正确语法确实有问题。
谢谢

当您使用
条件时?value if true:value if false
在一个条件之后,您不能省略
,否则这是一个语法错误(当条件为
false
时会发生什么情况?)。如果您不希望在条件为false时发生任何事情,请改用
If
语句,如so():

希望这有帮助

    $('#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();
if ($(this).val() != "full03_accommodation_hotel") $("#li-11-23").hide("fast");