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

如何使用JavaScript要求表单中已完成字段的比率

如何使用JavaScript要求表单中已完成字段的比率,javascript,jquery,forms,validation,field,Javascript,Jquery,Forms,Validation,Field,我正在寻找一种使用JavaScript的方法,以要求表单中字段的特定比率是完整的。因此,如果我有六个字段,用户必须完成任何2/6才能提交。如果没有,那么他们会收到一个错误。(表单中实际上会有几个不同的组,就像这样,因此我必须能够识别比率的特定字段。) 经过更多的研究,我发现了一些相近的东西,并且意识到我可以计算一个班级的人数。如果复选框的数量大于或等于2,返回true,我将如何更改此选项 document.getElementById("test").onclick = function() {

我正在寻找一种使用JavaScript的方法,以要求表单中字段的特定比率是完整的。因此,如果我有六个字段,用户必须完成任何2/6才能提交。如果没有,那么他们会收到一个错误。(表单中实际上会有几个不同的组,就像这样,因此我必须能够识别比率的特定字段。)

经过更多的研究,我发现了一些相近的东西,并且意识到我可以计算一个班级的人数。如果复选框的数量大于或等于2,
返回true,我将如何更改此选项

document.getElementById("test").onclick = function() {
    isCountCheck("Check something");
};

function isCountCheck(helperMsg) {
    var i, len, inputs = document.form1.getElementsByClassName("checkbox");
    for (i = 0, len = inputs.length; i < len; i++) {
        if (inputs[i].type === "checkbox" && inputs[i].checked) return true;
    }
    alert(helperMsg);
    return false;
}

我想到的第一件事是:创建一个计算填充字段的函数,如果填充字段的数量足够,则返回true(否则返回false)。然后将其作为“onsubmit”函数添加到表单中。单击submit按钮时,将执行函数,并根据函数返回的内容(true或false),提交或不提交表单

有关javascript表单验证的更多信息:

使用jQuery

var numberOfInputsCompleted = 0;
var allInputs = $(":input"); // returns all input fields on the document
var numberOfInputs = allInputs.length
allInputs.each(function () {
  if($(this).val() != '') {
    numberOfInputsCompleted = numberOfInputsCompleted  + 1;
  } 

});

numberOfInputsCompleted
将给出已完成的字段,
numberOfInputs
将给出表单上输入字段的总数。希望这有帮助

您能发布您迄今为止尝试过的内容吗?这种形式的元素是什么?谢谢David。我想我真的在寻找一个可以实现的例子。在我的搜索中,我没有找到任何接近我想要的东西。表单是多页的,我需要计算的元素是复选框。我添加了一个更接近我要做的事情的示例。如果输入[i].checked>=2)返回true,您将如何添加验证?很高兴您找到了问题的解决方案。但是,不应将实际答案/解决方案编辑到您的问题中。一般来说,你应该通过提问来澄清问题,但不要在问题中包含答案。你应该用你用来解决问题的代码创建你自己的答案,然后接受它(系统可能需要48小时的延迟才能接受你自己的答案)。当您自己解决问题时,[鼓励您回答自己的问题](//stackoverflow.com/help/self-answer“target=“\u blank”)。但是,请注意,您添加到此问题中的代码实际上并不是您所问问题的答案。您询问如何根据比率进行确定,而“最终”代码只检查复选框的绝对数量。能够使用该解决方案需要问题中没有的信息(例如,复选框的具体总数和您想要的定量)。感谢您的回答。我有几个比率组需要设置。如何计算特定字段而不是表单中的所有字段?在100个字段中,我需要它们单击前10个字段中的2个,然后单击4个或下10个字段,以此类推。。。
var numberOfInputsCompleted = 0;
var allInputs = $(":input"); // returns all input fields on the document
var numberOfInputs = allInputs.length
allInputs.each(function () {
  if($(this).val() != '') {
    numberOfInputsCompleted = numberOfInputsCompleted  + 1;
  } 

});