单击文本框后启用提交按钮

时间:2013-11-14 06:18:09

标签: javascript html

点击复选框后,我有以下代码启用提交按钮。

HTML:

<input type="checkbox" checked="checked" id="check"><a href="#">terms and conditions</a>
<input type="submit" name="submit" id="post" value="submit">

脚本:

$('#check').click(function(){

if($(this).attr('checked') == false){
     $('#post').attr("disabled","disabled");   
}
else {
    $('#post').removeAttr('disabled');
}
});

但这不适用于我的localhost。即使未选中该复选框,该按钮也会一直启用。请帮我把它搞定。

6 个答案:

答案 0 :(得分:1)

$('#check').click(function() {
    $('#post').prop('disabled', !$(this).is(':checked'));
}

.attr()检查HTML中的属性,而不是HTML的当前状态; .is(':checked')测试后者。另外,我认为最好使用.prop()动态更改元素的禁用状态。

答案 1 :(得分:0)

如果您选中,是否禁用它,然后取消选中该复选框?如果是这样,那么您只需将disabled设置为默认状态。

答案 2 :(得分:0)

使用.is(':checked')

$('#check').click(function() {
    if(!$(this).is(':checked')) {
        $('#post').attr("disabled","disabled");   
    } else {
        $('#post').removeAttr('disabled');
    }
});

答案 3 :(得分:0)

$(this).attr('checked')将始终为true,它只是读取“已检查”的attr值,

使用

this.checked

$(this).prop('checked')

请参阅:http://jsfiddle.net/m6aBZ/

答案 4 :(得分:0)

以下是filddle

以下是使用它的javascript

$(function(){
$('#check').click(function(){
    if($(this).attr('checked')!="checked"){
        $("#post").attr("disabled","disabled");

    } else {
        $("#post").removeAttr("disabled");
    }
});
});

答案 5 :(得分:0)

很多答案。

不要将任何表单控件称为“提交”,因为它会影响表单的提交方法(即form.submit将引用控件,而不是方法)。

您需要的只是:

<form ...>
  <input type="checkbox" onclick="this.form.submitButton.disabled = !this.checked" ...>
  <input type="submit" name="submitButton" disabled>
</form>