Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 禁用单选按钮上的下拉框单击_Jquery_Drop Down Menu_Radio Button - Fatal编程技术网

Jquery 禁用单选按钮上的下拉框单击

Jquery 禁用单选按钮上的下拉框单击,jquery,drop-down-menu,radio-button,Jquery,Drop Down Menu,Radio Button,我有两个单选按钮和一个下拉框,如下所示。我想做的是: 1.选中“否”时,隐藏或灰显下拉框,然后 2.选中“是”时,显示下拉框 任何提示都将不胜感激 <td colspan="4"> <input name="discount" type="radio" id="Yes" value="Yes" />Yes <input name="discount" type="radio" id="No" value="No" checked="checked" />No&

我有两个单选按钮和一个下拉框,如下所示。我想做的是: 1.选中“否”时,隐藏或灰显下拉框,然后 2.选中“是”时,显示下拉框

任何提示都将不胜感激

<td colspan="4">
<input name="discount" type="radio" id="Yes" value="Yes" />Yes
<input name="discount" type="radio" id="No" value="No" checked="checked" />No<br />  
<select class="purple" name="discountselection" id="discountselection">
<option value="1 Year" selected="selected">1 Year</option>
<option value="2 Years">2 Years</option>
<option value="3 Years">3 Years</option>
</select>                  
</td>

对
否
一年 两年 三年
您需要将
选择
控件设置为
禁用
,并使用与此类似的代码:

​$(function(){
    $('input:radio[name=discount]').one('change', function(){
        $('.purple').removeAttr('disabled');
    });
});​

参考号:


您可以使用jQuery隐藏它:

$(document).ready(function(){     

$('#discountselection').hide();

        $('#No').click(function(){
            $('#discountselection').hide();
        });

        $('#Yes').click(function(){
            $('#discountselection').show();
        });
});
检查它:

更新:添加了$(document.ready();方法在页面准备就绪时将此代码设置为操作
   <script type="text/javascript">
                   $("#Yes").click(function() {
                        $("#discountselection").attr("disabled", false);
                        //$("#discountselection").show(); //To Show the dropdown
                    });
                    $("#No").click(function() {
                        $("#discountselection").attr("disabled", true);
                        //$("#discountselection").hide();//To hide the dropdown
                    });
    </script>
$(“#是”)。单击(函数(){ $(“#折扣选择”).attr(“禁用”,false); //$(“#折扣选择”).show();//显示下拉列表 }); $(“#否”)。单击(函数(){ $(“#折扣选择”).attr(“禁用”,真); //$(“#折扣选择”).hide();//隐藏下拉列表 });
另外,根据页面加载时选择的默认radiobutton,设置下拉菜单的显示样式或HTML中的disabled属性

 <select  name="discountselection" id="discountselection" disabled="disabled">
    <option value="1 Year" selected="selected">1 Year</option>
    <option value="2 Years">2 Years</option>
    <option value="3 Years">3 Years</option>
    </select>

一年
两年
三年
这样行吗

$('input:radio').bind('change', function(){
    $('select').attr('disabled', $(this).val() == "No");
});

经过测试,效果很好。祝你好运。

我的页面上还有其他单选按钮。这会影响那些人吗?@TaraWalsh:是的。我对代码进行了调整,使其更加具体。很酷,我将此javascript代码放在HTML文档的顶部,如下所示:$(function(){$('input:radio[name=discount]')。one('change',function(){$('.purple')。removeAttr('disabled');});});​ 这是使用此代码的正确方法吗?现在它似乎不起作用。如果它们更改回来,这不会重新禁用。嗨,我应该在哪里插入这个javascript?我是个新手。你可以把这个放在
里面。是的,我已经做了,但对我来说似乎不起作用:-\n我还需要做什么吗?它做什么?我能看看你的密码吗?我确信有一些简单的东西丢失了:)您在JSFIDLE中检查过了吗?如果你有我可以看的代码,我们会让它运行的。这是麻烦。不删除
disabled
属性可能会导致某些浏览器仍然禁用该元素,即使其值为0。实际上,设置哪个值并不重要,只要属性
disabled
存在,元素就必须被禁用(w3c)。
​$(function(){
  $('input:radio').bind('change', function(){
     $('#discountselection').attr('disabled', !$("#yes").is(":checked"));
  });
});​
$('input:radio').bind('change', function(){
    $('select').attr('disabled', $(this).val() == "No");
});