Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 - Fatal编程技术网

Javascript 根据复选框启用/禁用按钮

Javascript 根据复选框启用/禁用按钮,javascript,jquery,Javascript,Jquery,从今天早上开始,我尝试使用jQuery创建一个代码,当我单击复选框时,它允许启用/禁用提交按钮。我试图在一个函数中编写所有这些代码,该函数将在everyclick上调用 问题是,它在JSFIDLE上运行良好,但在我的计算机上,一旦该按钮被启用,我就无法通过取消选中所有复选框使其再次被禁用 你有什么办法解决这个问题吗 谢谢你的建议 这是我的代码: 函数activeBouton(){ var countChecked=函数(){ var n=$(“输入:已选中”).length; 如果(n==0)

从今天早上开始,我尝试使用jQuery创建一个代码,当我单击复选框时,它允许启用/禁用提交按钮。我试图在一个函数中编写所有这些代码,该函数将在everyclick上调用

问题是,它在JSFIDLE上运行良好,但在我的计算机上,一旦该按钮被启用,我就无法通过取消选中所有复选框使其再次被禁用

你有什么办法解决这个问题吗

谢谢你的建议

这是我的代码:

函数activeBouton(){
var countChecked=函数(){
var n=$(“输入:已选中”).length;
如果(n==0)jQuery('button').prop('disabled',true);
else jQuery('button').prop('disabled',false);
};
countChecked();
$(“输入[类型=复选框]”)。单击(“单击”,计数已选中);
};

联合国项目
第二项
第三项

添加
当我试图运行你的小提琴时,我得到以下错误

未捕获引用错误:未定义activeBouton

当您已经使用jQuery将单击事件绑定到各个复选框时,不确定为什么要尝试使用
onclick
属性将单击事件绑定到div

试着这样做:

$(document).ready(function() {
  var countChecked = function() {
    var n = $("input:checked").length;
    if (n == 0) jQuery('button').prop('disabled', true);
    else jQuery('button').prop('disabled', false);
  };

  $("input[type=checkbox]").on("click", countChecked);
});
并在周围的
中去掉
onclick
属性


更新。

您共享的代码片段有点混乱
activeBouton
函数附加了
click
处理程序的
div
,该处理程序正在调用
countChecked()
&如果
复选框中有任何更改,也会调用该函数

它可以简化。 除此之外,
装载类型
与JSFIDLE中的
装载
onDOMReady
主体
头部
之间存在重大差异。所以,当您在浏览器中运行代码时,若可以显示代码的放置位置,那个么这将非常有用

希望这段代码有用

function countChecked() {
  if ($('input[name="nom"]:checked').length > 0 && $("#activeBtn").is(':disabled')) {
        $("#activeBtn").removeAttr('disabled')
    } else if ($('input[name="nom"]:checked').length == 0) {
       $("#activeBtn").attr('disabled', true)
    }
};
$('input[name="nom"]').on("change", function(event) {
    countChecked(); // Call countChecked event on change in checkbox
});

检查此项

此处提供的示例是否未按预期工作?您的代码似乎适用于Me您的机器上的哪个浏览器不工作?这就是你在你的机器上使用的代码吗?如果它在小提琴上工作,而不是在你的机器上,那么它可能是另一段代码faulty@Lee.Winter,是的,它在这里工作,但在我的计算机上它不工作,我不知道问题出在哪里。谢谢你的回复,我不想使用(文档).准备好了吗?因为实际文件包含10000多行代码和许多函数,这就是为什么我想调用包含此方法的函数来运行这些指令。它是有效的,我开始尝试此方法,但我的实际代码包含10000多行代码和许多函数,这就是为什么我尝试使用函数启用/禁用bouton(这意味着您在函数中编写的代码,我可以在每次单击后调用它)它可以在JSFIDLE上运行,但不能在我的计算机上运行,因为正如我所说的,我试图将所有这些代码放在一个函数中,并在单击时调用它,但它根本不起作用。你知道如何像我在第一个代码中所做的那样,将代码放在函数中并在下一个函数中调用吗?不,在js文件中包含其他函数。好的,你在html或jsp中看到body标记了吗?它是一个jsp项目,我看不到任何导入js文件的body标记。这是一个古老而复杂的项目,这就是为什么我尝试在全局js文件中插入代码的原因