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