Javascript 对单独的实例禁用JS输入验证提交

Javascript 对单独的实例禁用JS输入验证提交,javascript,jquery,Javascript,Jquery,我需要input和submit的每个实例独立运行。如果每个submit都连接到自己的输入集,处理多个实例的最佳方法是什么 既然它们不相关,数据属性会是最好的解决方案吗 $(文档).ready(函数(){ 验证(); $('input')。在('keyup',validate)上; }); 函数验证(){ var InputSwithValue=0; var myInputs=$(“输入:非([type='submit']))”; myInputs.each(函数(e){ if($(this.v

我需要
input
submit
的每个实例独立运行。如果每个
submit
都连接到自己的
输入集
,处理多个实例的最佳方法是什么

既然它们不相关,
数据属性
会是最好的解决方案吗

$(文档).ready(函数(){
验证();
$('input')。在('keyup',validate)上;
});
函数验证(){
var InputSwithValue=0;
var myInputs=$(“输入:非([type='submit']))”;
myInputs.each(函数(e){
if($(this.val()){
输入值+=1;
}
});
if(inputsWithValues==myInputs.length){
$(“输入[类型=提交]”).prop(“已禁用”,false);
}否则{
$(“输入[类型=提交]”).prop(“已禁用”,true);
}
}

首选方式 我认为最好的解决方案是使用
表单
-tag,因为它是为这个用例创建的

可能但更多的螺栓连接方法 替代方法是创建自己的函数,用于从输入中收集所有相关数据,并合并一些合理的数据对象

我最有可能的做法是,将所有我想立即收集的输入都提供给所需的class-attribute,例如
等等。获取具有给定类的所有元素,循环遍历所有元素并将值保存到对象中

这需要做更多的工作,而表单标签为您提供了一些很好的开箱即用的验证,您必须自己进行验证。

首选方法 我认为最好的解决方案是使用
表单
-tag,因为它是为这个用例创建的

可能但更多的螺栓连接方法 替代方法是创建自己的函数,用于从输入中收集所有相关数据,并合并一些合理的数据对象

我最有可能的做法是,将所有我想立即收集的输入都提供给所需的class-attribute,例如
等等。获取具有给定类的所有元素,循环遍历所有元素并将值保存到对象中


这需要做更多的工作,而表单标签提供了一些很好的开箱即用的验证,这是您必须自己做的。

我认为您关于使用数据属性的直觉在这里非常有用

var allButtons = document.querySelectorAll("input[type=submit]");

allButtons.forEach(button => {
  button.addEventListener("click", () => {
    var inputSet = button.getAttribute("data-input-set");
    var inputs = document.querySelectorAll("input[type='text'][data-input-set='" + inputSet + "']");
  });
});

在下面的代码中,当按下输入按钮时,它将使用相应的“输入集”标记获取所有输入。

我认为您关于使用数据属性的直觉在这里非常有用

var allButtons = document.querySelectorAll("input[type=submit]");

allButtons.forEach(button => {
  button.addEventListener("click", () => {
    var inputSet = button.getAttribute("data-input-set");
    var inputs = document.querySelectorAll("input[type='text'][data-input-set='" + inputSet + "']");
  });
});
在下面的代码中,当按下输入按钮时,它将获取带有相应“input set”标记的所有输入

var allButtons = document.querySelectorAll("input[type=submit]");

allButtons.forEach(button => {
  button.addEventListener("click", () => {
    var inputSet = button.getAttribute("data-input-set");
    var inputs = document.querySelectorAll("input[type='text'][data-input-set='" + inputSet + "']");
  });
});