0

我有一个是/否单选组,我想在选中否时显示一个 div。页面加载时需要隐藏 div,除非已选中no 。

它在从 yes 更改为 no 时起作用,但在页面加载时 div 是可见的。我想我需要首先测试是否检查了euResidentNo输入,但我不知道该怎么做。我也不确定这是否是实现我需要的最佳方式。谢谢。

小提琴

http://jsfiddle.net/paulyabsley/2Uj9F/5/

HTML

<input type="radio" name="euResident" id="euResidentYes" value="Yes" />
<input type="radio" name="euResident" id="euResidentNo" value="No" />

<div id="div">
    ...
</div>

jQuery

$(document).ready(function() {
    $("input[name=euResident]").change(function(){
        if($("#euResidentNo").prop("checked"))
        {
            $("#div").show();
        }
        else
        {
            $("#div").hide();
        }
    });
});
4

4 回答 4

1
function switchVar() {
    if($("#euResidentNo").prop("checked"))
        $("#div").show();
    else
        $("#div").hide();
}

$(document).ready(function() {
    switchVar();
    $("input[name=euResident]").change(switchVar);
});

小提琴

这将检查是否检查了 no,如果是,将显示 div。

于 2013-06-06T15:14:50.977 回答
1

change只需在页面加载时触发处理程序

$('input[name=euResident]').change();

这是一个小提琴

此外,您可以将代码简化为:

$("input[name=euResident]").change(function(){
    $('#div').toggle( $('#euResidentNo').is(':checked') );
}).change(); 
于 2013-06-06T15:11:09.087 回答
1

添加.change()到处理程序的末尾,这会立即调用它:

$("input[name=euResident]").change(function(){
    if($("#euResidentNo").prop("checked"))
    {
        $("#div").show();
    }
    else
    {
        $("#div").hide();
    }
}).change();
于 2013-06-06T15:11:17.723 回答
0

。扳机()

$('input[name=euResident]').trigger('change');
于 2013-06-06T15:11:30.500 回答