保持提交按钮被禁用,直到动态创建必填字段为止

时间:2013-10-17 07:10:36

标签: javascript jquery html validation

我希望在填写必填字段前禁用提交按钮。

首先, 我发现了一些关于这个问题的问题,但问题是我有一些必填字段而不是必填字段我也是动态创建这些字段。 这是一个例子:

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

我也有这样的输入,这就是我动态创建它们的方式,

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");

这是我的提交按钮:

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

2 个答案:

答案 0 :(得分:2)

您可以检查到目前为止在文档中添加的必填字段的数量,并根据您可以将提交按钮的属性设置为禁用或启用的计数。

您可以按以下方式计算所需的类组件:

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

修改

要检查是否已填写所有必需的类元素,您可以按以下方式检查:

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;
}

答案 1 :(得分:2)

  • 从设置了已禁用属性的按钮开始。
  • 将更改事件侦听器添加到表单元素(假设它是所有输入的父级) 元素)
  • 在变更处理程序中检查是否填写了所有必填字段,如果是,则启用提交按钮

即使用户删除了以后在必填字段中输入的值,这项工作仍然有效,提交按钮将再次被禁用