Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在选中复选框之前,如何禁用按钮?_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript 在选中复选框之前,如何禁用按钮?

Javascript 在选中复选框之前,如何禁用按钮?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我想禁用表单按钮,直到用户单击复选框 这是我的代码(表格的最后部分) 但这不起作用,我也不知道为什么。我不知道如何禁用按钮(也应该在视觉上禁用) 解决方案(感谢):您在if语句中的条件不正确。使用: $('#check').click(function(){ if(!$(this).is(':checked')){ $('#btncheck').attr("disabled","disabled"); }else $('#btncheck').removeAttr('d

我想禁用表单按钮,直到用户单击复选框

这是我的代码(表格的最后部分)

但这不起作用,我也不知道为什么。我不知道如何禁用按钮(也应该在视觉上禁用)


解决方案(感谢):

您在if语句中的条件不正确。使用:

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

您的逻辑有点错误,请尝试以下方法:

$('#check').change(function () {
    $('#btncheck').prop("disabled", !this.checked);
}).change()

请注意,按钮的UI在禁用时不会更新,但是
disabled
属性会更改。您可能希望添加一些CSS样式,以使按钮明显处于禁用状态


另外,我将代码更改为使用
change
事件,而不是
click
,以更好地满足使用键盘导航的用户的需要。

您需要更新属性,因此使用而不是
.attr()

好的阅读

使用
if($(this).prop(“checked”)
,而不是
if($(this).attr('checked')==false)

当您单击复选框
.is(“:checked”)
时,如果选中则返回true,否则返回false。根据复选框按钮的选择,它将启用/禁用按钮


尝试更改处理程序:

$(函数(){
var chk=$(“#检查”);
var btn=$(“#btncheck”);
chk.on('change',function(){
btn.prop(“disabled”,!this.checked);//true:disabled,false:enabled
}).trigger('change');//页面加载触发器事件
});

这里有一些文字

这需要一些逻辑:

   $(function(){
      const button = $('#submit'); // The submit input id 
      button.attr('disabled', 'disabled');
      $('#checkbox').change(function() { // The checkbox id 
          if (this.checked){
            button.removeAttr('disabled')
            .css("cursor", "pointer");
          } else {
            button.attr('disabled', 'disabled')
            .css( "cursor", "not-allowed" );
          }
      });
  });
记住将css提交按钮属性设置为
光标:不允许因此可以在页面加载时禁用它

备注:此代码将显示在页面底部。如果发现您有一个单独的文件,请不要忘记将其环绕:

$(文档).ready(函数(){
//代码在这里
});

我认为处理此问题的另一种方法是使用document.getElementById:

if($(this).prop("checked")) {
    document.getElementById('#btncheck').disabled = false;
} else {
    document.getElementById('#btncheck').disabled = true;
}

啊,是的,谢谢你。是否可以在默认情况下(当我第一次访问页面时)禁用该按钮,然后将其打开?现在,默认情况下该按钮处于启用状态。您可以在HTML中手动设置
disabled=“true”
属性,也可以立即触发事件。我已经为您更新了我的答案。也可以在mozilla firefox中运行。您可以查看演示是的,它在所有测试中都运行良好。我所指出的,你的唯一一个在Chrome中对我有用的:)
$('#check').click(function() {
    $('#btncheck').prop("disabled", this.checked == false);
});
$('#check').click(function(){

if($(this ).prop( "checked" )){
     $('#btncheck').attr("disabled","disabled");   
}
else
    $('#btncheck').removeAttr('disabled');
});
$('#btncheck').attr("disabled",true);  //Initially disabled button when document loaded.
$('#check').click(function(){
    $('#btncheck').attr("disabled",!$(this).is(":checked"));   
})
   $(function(){
      const button = $('#submit'); // The submit input id 
      button.attr('disabled', 'disabled');
      $('#checkbox').change(function() { // The checkbox id 
          if (this.checked){
            button.removeAttr('disabled')
            .css("cursor", "pointer");
          } else {
            button.attr('disabled', 'disabled')
            .css( "cursor", "not-allowed" );
          }
      });
  });
if($(this).prop("checked")) {
    document.getElementById('#btncheck').disabled = false;
} else {
    document.getElementById('#btncheck').disabled = true;
}