如果输入类型文本为空,禁用按钮类型send with jQuery?

时间:2012-02-16 23:59:07

标签: jquery html forms button radio

我需要一个简单的代码来禁用按钮将表单发送到以下条件:

如果选定的<input type="radio"> ID为“#radio_one”,则只检查一个ID为“#text_one”的<input type="text">

OR

如果选中的<input type="radio"> ID为“#radio_two”,则选中ID为“#text_one”且ID为“#text_two”的两个<input type="text">

并且,如果提供一个或两个<input type="text">将为空,则添加按钮<input type="send">属性已禁用=“已禁用”但是,如果将再次填充此属性,则会从按钮中删除

对不起我的英文,我使用谷歌翻译:(

我没有其他代码,我希望你理解我,所以我创建了一些简单的jQuery代码,然后可以编辑。

由于

编辑:这不起作用:

    $("#send_button").attr("disabled", "disabled");   

    if ($('#absence_one').checked && $('#cal_from').val().length > 0) {
        $("#send_button").removeAttr("disabled");
    }

    if ($('#absence_more').checked && $('#cal_to').val().length > 0) {
        $("#send_button").removeAttr("disabled");
    }

2 个答案:

答案 0 :(得分:1)

如果我理解,如果未完成任何一对单选按钮/文本框,则需要禁用提交按钮。如果是这样的话:

$("input[type=submit]").attr("disabled", "disabled");   

if ($('#radio_one').checked && $('#text_one').val().length > 0) {
    $("input[type=submit]").removeAttr("disabled");
}

if ($('#radio_two').checked && $('#text_two').val().length > 0) {
    $("input[type=submit]").removeAttr("disabled");
}

答案 1 :(得分:1)

在这里查看我的示例 jsfiddle

我在收音机上放了一个click听众,让它检查禁用或取消按钮

我在文本输入上放置一个keyup侦听器,以使其检查禁用或取消按钮

修改

我对这个示例稍作修改,这是新的jsfiddle

还要确保在服务器端仔细检查提交。如果某人禁用了javascript,则该按钮可用于点击。

$("#send_button").attr("disabled", "disabled");   

$("input[type='radio']").change(function()
{
    checkButton();
});

$("input[type='text']").keyup(function()
{
    checkButton();
});

function checkButton()
{
    if (($('#absence_one').is(":checked") && $('#cal_from').val().length > 0) || ($('#absence_more').is(":checked") && $('#cal_to').val().length > 0)) {
        $("#send_button").removeAttr("disabled");
    }
    else
    {
        $("#send_button").attr("disabled", "disabled");
    }
}