【问题标题】:JavaScript hide additional text field in existing scriptJavaScript 隐藏现有脚本中的附加文本字段
【发布时间】:2010-08-27 11:24:48
【问题描述】:

我正在使用此代码: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();

它工作正常,因此文本字段仅在以下情况下出现: 在第一个下拉菜单中选择了“酒店”,并在第二个下拉菜单中选择了“其他”。

但是一旦您将第一个下拉菜单更改为“酒店”以外的其他内容,我显然需要隐藏其他两个字段。目前,文本字段仍然存在。

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

我尝试过这样的事情:

    $('#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();

这里的语法确实有问题。 谢谢!

【问题讨论】:

    标签: javascript select textbox show-hide


    【解决方案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");
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2014-05-15
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多