简体   繁体   English

在填写动态创建的必填字段之前,请禁用提交按钮

[英]Keeping submit button disabled until dynamically created required fields are filled

I want to keep the submit button disabled until the required fields are being filled. 我想保持提交按钮处于禁用状态,直到填写必填字段。

Firstly , I found some questions about this issue but the problem was i have some required fields and not required fields also i am creating these fields dynamically. 首先,我发现了一些有关此问题的问题,但问题是我有一些必填字段,而没有必填字段,而且我正在动态创建这些字段。 Here is an example: 这是一个例子:

<input type="text" id="releaseartist" name="releaseartist" required="true" placeholder="Required Field"/>

Also i have input like that , this is how i am creating them dynamically, 我也有这样的输入,这就是我动态创建它们的方式,

var trackartistinput = document.createElement('input');
trackartistinput.setAttribute('type', "text");
trackartistinput.setAttribute('id', "trackartist" + i);
trackartistinput.setAttribute('name', "trackartist");
trackartistinput.setAttribute("required", true);
trackartistinput.setAttribute("placeholder", "Required Field");
trackartistinput.setAttribute("class", "required");

And this is my submit button : 这是我的提交按钮:

<input type="submit" class="btn btn-primary" value="Submit" id="form-submit" onclick="return myConfirm();" />

you can check the count of required fields added in the document so far and based on the counts you can set the property of submit button to disabled or enabled. 您可以检查到目前为止已添加到文档中的必填字段的数目,并根据计数可以将“提交”按钮的属性设置为“禁用”或“启用”。

you can count required class components as follow: 您可以按如下方式计算所需的类组件:

var numItems = $('.required').length

EDIT 编辑

to check if all the required class elements are filled you can check as follow: 要检查是否所有必需的类元素都已填写,您可以检查如下:

var required_ele = document.getElementsByClassName('required');
var allfilled=true;
for (var i = 0; i < required_ele.length; ++i) {
    var item = required_ele[i];  
    if(item.value.length==0){
      allfilled=false;
    }
}
if(allfilled){
   document.getElementById("form-submit").disabled = false;
}
else{
  document.getElementById("form-submit").disabled = true;
}
  • Start with button having disabled attribute set. 从已禁用属性设置的按钮开始。
  • Add change event listener to form element (assuming that is the parent of all input elements) 将更改事件侦听器添加到表单元素(假设它是所有输入元素的父级)
  • in change handler check if all required fields are filled, if yes, enable submit button 在变更处理程序中,检查是否所有必填字段均已填写,如果是,请启用提交按钮

This work well even if user remove value entered in required field later, submit button will become disabled again 即使用户稍后删除了必填字段中输入的值,此方法也能正常工作,提交按钮将再次被禁用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM