JavaScript 隐藏现有脚本中的附加文本字段

发布于 2024-09-16 17:05:01 字数 1079 浏览 1 评论 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();

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

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

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

我尝试过这样的事情:

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

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

I am using this code: 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();

It works fine so that the text field only appears when:
in the first dropdown "Hotel" is selected AND in the second dropdown "Other" is selected.

But once you change the first dropdown to something other than "Hotel", I obviously need to have both other fields to hide. Currently, the text field remains.

How do I change the code that the text field also gets hidden?
I know how to do it logically but I'm having problems with the syntax.

I tried something like this:

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

Really having problems with proper syntax here.
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

很酷不放纵 2024-09-23 17:05:01

当你使用条件? 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");

希望这有帮助。

When you use the condition ? value if true : value if false after a condition, you cannot omit :, otherwise it is a syntax error (what happens when condition is false?). If you don't want anything to happen when the condition is false, use an if statement instead, like so (http://jsfiddle.net/q3nUS/2/):

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

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文