如果对单选按钮进行了特定更改,则将下拉列表的值更改为null,但不仅仅是任何更改

时间:2013-08-11 10:47:09

标签: javascript forms

如果我将ID为“101”的单选按钮从一个选项更改为另一个选项,这里的代码会将ID为“106”的下拉菜单更改为空值:

<script type="text/javascript">
jQuery(document).ready(function($){
  $('input[name="item_meta[101]"]').change(function(){
    $('select[name="item_meta[106]"]').val('');
  })
})
</script>

但是,我需要将106更改为null 仅当 选择了101中的特定值,而不仅仅是任何可用值。单选按钮id = 101的值分别为1,2,3,4,5。所以我希望106恢复为空值,如果101从5变为4,而不是从5变为3。

这可能吗?如果是这样,显然会将“.change(function()”更改为其他一些参数,但我不知道它会是什么。

感谢任何帮助。这是一个JS小提琴:http://jsfiddle.net/3N2TT/

更新:这是最终的代码:

<script type="text/javascript">
jQuery(document).ready(function($){
$('input[type="radio"][name="item_meta[101]"]').change(

function () {
    var valCheck = this.value === '4 Categories - $90';
    $('select[name="item_meta[106]"]').val(function () {
        return valCheck ? 'null' : this.value;
    });
});
})
</script>

谢谢,大卫!

2 个答案:

答案 0 :(得分:0)

使用click功能并使用class作为单选框选择器。

jQuery(document).ready(function($){

  $('.myradiobox').click(function(){
    var radioVal = this.val();
    if(radioVal == 5 || radioVal == 4)
    {
       radioVal == 'NULL';
    }
    $('select[name="item_meta[106]"]').val(radioVal);
  })
})

答案 1 :(得分:0)

我对你的问题的看法如下:

$('input[type="radio"][name="item_meta[101]"]').change(
    function(){
        // testing if the chosen value is equal to '4' (all input values are strings):
        var valCheck = this.value === '4';

        // setting the value of the select:
        $('select[name="item_meta[106]"]').val(function(){
            /* setting to 'null' if the valCheck evaluates to true, otherwise returning
               the currently-selected value: */
            return valCheck ? 'null' : this.value;
        });
    });

JS Fiddle demo

参考文献: