启用复选框时禁用<select> </select>

时间:2011-12-29 21:52:20

标签: php javascript html

如果启用了ID为“exactage”的复选框,我想使用javascript将属性disabled =“disabled”设置为id为2。有任何想法吗?提前致谢。一个快乐的程序员:)

 <select id="age">
        <option value="18"><18</option>
    </select>

    <select id="age2">
        <option value="18"><18</option>
    </select>

   <input type="checkbox" id="exactage"/> Require exact age

5 个答案:

答案 0 :(得分:3)

请注意,当我写下这个答案时,我有一个短暂的盲点:我可以发誓我看到了标签。叹。我的错误,现在,不值得修改这个答案,因为其他功能性的简单JS答案已经发布,我无法改进。

但是,我会将此更改为社区维基,暂时将其保留为更多信息。


以下内容适用于您, 如果 您正在使用jQuery(请参阅上面的附录,关于盲点):

$('#exactage').change(
    function(){
        if ($(this).is(':checked')){
            $('#age2').prop('disabled',true);
        }
        else {
            $('#age2').prop('disabled',false);
        }
    });

change复选框的#exactage事件中,if会检查$(this)是否为:checked。如果,那么它会设置disabled元素的#age2属性,否则会删除/取消设置disabled属性。

参考文献:

答案 1 :(得分:3)

如果启用,则表示已选中

if(document.getElementById('exactage').checked)
    document.getElementById('age2').setAttribute('disabled', 'disabled');

如果您启用了实际意味着已启用,则可以执行以下操作:

if(document.getElementById('exactage').getAttribute('disabled') !== null)
    document.getElementById('age2').setAttribute('disabled', 'disabled');

答案 2 :(得分:0)

您可以尝试onclick或onselect(我认为有类似的东西)属性来调用方法 在方法中尝试

document.getElementById('age2').setEnabled(false) 

    document.getElementById('age2').disabled=disabled

沿着那条线的东西..我不记得了:(

答案 3 :(得分:0)

尝试使用以下内容。

if(document.getElementById('exactage').checked)
{
    document.getElementById('age2').disabled=true;
}

答案 4 :(得分:0)

首先你需要这些

function changeState(id, state)
{
    if(state == 0)
        document.getElementById(id).disabled = true;
    else
        document.getElementById(id).disabled = false;
}

function toggleFields(id, state)
{
    var e=document.getElementById(id);
    if(!e)return true;
    if(state == 1)
    {
        e.style.display=""
    }
    else
    {
        e.style.display="none";
    }
    return true;
}

其次是

function checkBoxState(check_box_id, field_id, flag)
{
    if(document.getElementById(check_box_id).checked)
    {
        if(flag == 1)
            toggleFields(field_id, 1);
        else if(flag == 0)
            changeState(field_id, 1);
        document.getElementById(check_box_id).value = 1;
    } else {
        if(flag == 1)
            toggleFields(field_id, 0);
        else if(flag == 0)
            changeState(field_id, 0);
        document.getElementById(check_box_id).value = 0;
    }
}

function reversedCheckBoxState(check_box_id, field_id, flag)
{
    if(document.getElementById(check_box_id).checked)
    {
        if(flag == 1)
            toggleFields(field_id, 0);
        else
            changeState(field_id, 0);
        document.getElementById(check_box_id).value = 1;
    } else {
        if(flag == 1)
            toggleFields(field_id, 1);
        else
            changeState(field_id, 1);
        document.getElementById(check_box_id).value = 0;
    }
}

现在你所要做的就是运行reverseCheckBoxState(“exactage”,“age2”0) 或者你可以运行reversedCheckBoxState(“exactage”,“age2”1)

享受!