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

Javascript 单击文本框后启用提交按钮,javascript,html,Javascript,Html,我有以下代码用于在单击复选框后启用submit按钮 HTML: 但这在我的本地主机中不起作用。即使未选中复选框,该按钮也始终处于启用状态。请帮我把它弄好 如果选中,然后取消选中复选框,是否会禁用它?如果是这样,那么您只需要将disabled设置为默认状态。使用.is(':checked') .attr()检查HTML中的属性,而不是HTML的当前状态.is(':checked')测试后者。此外,我认为最好使用.prop()动态更改元素的禁用状态。$(此).attr('checked')将始终为t

我有以下代码用于在单击复选框后启用submit按钮

HTML:


但这在我的本地主机中不起作用。即使未选中复选框,该按钮也始终处于启用状态。请帮我把它弄好

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

使用
.is(':checked')

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

$(此).attr('checked')将始终为true,它只读取“checked”attr值

使用

见此:

这是

下面是使用它的javascript

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

    } else {
        $("#post").removeAttr("disabled");
    }
});
});
有很多答案

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

您所需要的只是:

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


No按钮一直处于启用状态。如果我将默认值设置为“disabled”,那么即使复选框被选中或取消选中,按钮也会一直被禁用。@SindhuSounderrajan是的,我已经添加了它。你能提供一个实例吗?它在JSFIDLE中运行良好。但在我的localhost中,它不起作用。按钮一直处于启用状态。这是werid,您是否收到任何js错误,只需发出警报(this.checked)查看其值我尝试发出警报。选中复选框时显示true,未选中时显示false。但是按钮仍然为这两个都启用。然后问题是$(#post”).attr(“disabled”,“disabled”)?我尝试了很多解决方案。但它仍然不起作用。我在问题中贴出的代码是不可靠的。我不知道是什么问题,它在我的本地主机上不工作。在使用localhost时是否需要注意一些事项?@user2727874您是否在browsers1的开发人员工具中看到任何控制台错误。ReferenceError:$未定义@2。未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将呈现乱码文本。页面的字符编码必须在文档或传输协议中声明。@。。这些是我在控制台中得到的错误您是否已将
jquery.js
文件添加到html文档中?如果未添加对jquery cdn的引用-->请将jquery脚本标记替换为code.jquery.com/jquery-1.9.1.js“>侦听器可以
this.form.submit.disabled=!this.checked
完成。但不要为表单控件提供submit或任何其他标准表单属性名称(如post)的名称或ID。checked属性设置复选框的默认选中度。添加和删除该属性不会更改checked属性的当前值(即是否选中输入),也不会通过检查属性是否存在来告诉您复选框是否选中。
$('#check').click(function() {
    if(!$(this).is(':checked')) {
        $('#post').attr("disabled","disabled");   
    } else {
        $('#post').removeAttr('disabled');
    }
});
$('#check').click(function() {
    $('#post').prop('disabled', !$(this).is(':checked'));
}
this.checked
$(this).prop('checked')
$(function(){
$('#check').click(function(){
    if($(this).attr('checked')!="checked"){
        $("#post").attr("disabled","disabled");

    } else {
        $("#post").removeAttr("disabled");
    }
});
});
<form ...>
  <input type="checkbox" onclick="this.form.submitButton.disabled = !this.checked" ...>
  <input type="submit" name="submitButton" disabled>
</form>