【问题标题】:Wrong data displayed on many onchange许多 onchange 上显示的数据错误
【发布时间】:2014-09-15 21:53:40
【问题描述】:

我在 onchange 事件中遇到代码 onchange 问题。

有些代码可以工作,有些则不能正常工作。

<script>
    $(document).on('change', '.sellkop', function() { // this is radio button
        if ($("#rs").is(':checked')) {
                 $("#text_container").after(price_option());
            };
        if ($("#rk").is(':checked')) {
               $("#price_container").remove();
               $("#licensenumber_c").css({"display": 'none'
           });
         };
    });

 $('#category_group').on('change', function() { // this is select options

    if ($(this).val() == 101) {
              $("#underKategory").css({"display": 'none'});
              $("#modelcontainer").remove();
              $(".toolimage").css({ "display": 'block'});

        $('.sellkop').on('change', function() { // this is radio button
            if ($("#rs").is(':checked')) {
                $("#licensenumber_c").css({"display": 'block'});
                $(".toolimage").css({"display": 'block' });
            } else {
                $(".toolimage").css({"display": 'none'});
            }
        });
    } else {
               $(".bilar").remove();
              $(".toolimage").css({ "display": 'none'});
    }
    if ($(this).val() == 102) {
                $(".houses_container").remove();
                $(".toolimage").css({"display": 'none'});
                $("#underKategory").css({"display": 'inline-block'});
                $("#modelcontainer").remove();
    }

    ///............many other values continue
 });
</script>

我知道有更好的方法来管理和简化这段代码,但我不知道怎么做?

编辑:

我想要的是:如果我选择一个选项,然后获取该选项的值,然后在此类别选项下有单选按钮,所以每个检查按钮我都需要显示一些数据或删除

这是一个fiddle 看起来我的问题。

会发生什么: 如果我选择类别->检查购买->然后选择其他。我没有得到与直接选择汽车相同的结果--->购买

【问题讨论】:

  • 更新了您的代码可读性... ;)
  • 为什么需要嵌套事件处理程序?一个事件是否依赖于另一事件的发生?
  • 因为,如果选择一个选项,则获取该选项的值,然后在此类别选项下有单选按钮,然后每个检查按钮我都需要显示或删除一些数据。

标签: javascript jquery onchange


【解决方案1】:

尝试以下脚本:
函数萨尔科普(){ 变量 x = "\ 卖 \ 买\ "; 返回 x ; } 功能价格选项(){ 变量 x = '\ \ \ 使固定 \ \ 提供 \ \ '; 返回 x ; } 功能汽车(){ 变量 x = '\ '; 返回 x }

        $("#categories").after(saljkop());

        $(document).on('change', '.sellkop', function() { // this is radio button
                if ($("#rs").is(':checked')) {
                     $("#price_container").remove();
                         $("#text_container").after(price_option());

                    };
                if ($("#rk").is(':checked')) {

                       $("#price_container").remove();
                       $("#licensenumber_c").css({"display": 'none'
                   });
                 };
            });

         $('#category_group').on('change', function() { // this is select options

            if ($(this).val() == 101) {
                      $("#sellbuy").after(cars())  ;
                 $("#price_container").remove();
                      $("#text_container").after(price_option());
                      $("#underKategory").css({"display": 'none'});
                      $(".toolimage").css({ "display": 'block'});


            } else {
                       $(".cars").remove();
                      $(".toolimage").css({ "display": 'none'});
            }
            if ($(this).val() == 102) {
                         $("#price_container").remove();
                         $("#text_container").after(price_option());
                        $(".toolimage").css({"display": 'none'});
                        $("#underKategory").css({"display": 'inline-block'});
            }

            ///............many other values continue
         });

【讨论】:

  • 我不知道你改变了什么,你现在检查我的新小提琴了吗?你的脚本也不起作用。看。选择类别->检查购买->然后选择其他。如果我直接选择汽车,我不会得到与我想要的相同的结果--->购买。
  • 在这一行之后用我的代码替换你的代码 $("#categories").after(saljkop());
  • 在小提琴中都试过了。但与我在评论中所说的问题相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-21
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
相关资源
最近更新 更多