javascript - 验证动态创建的输入文本字段

标签 javascript jquery validation

以下代码来自:

Adding removing input fields using jQuery

$(document).ready(function() {
    var max_fields      = 10; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); //Fields wrapper
    var add_button      = $(".add_field_button"); //Add button ID

    var x = 1; //initlal text box count
    $(add_button).click(function(e){ //on add input button click
        e.preventDefault();
        if(x < max_fields){ //max input box allowed
            x++; //text box increment
            $(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
        }
    });

    $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
        e.preventDefault(); $(this).parent('div').remove(); x--;
    })
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="input_fields_wrap">
    <button class="add_field_button">Add More Fields</button>
    <div><input type="text" name="mytext[]"></div>
</div>

假设将创建未知数量的名为 mytext[] 的输入:我如何验证它们都不为空?

最佳答案

这会对你有帮助。请在点击事件(示例)中修改以下代码:

当您单击remove_field元素时,将执行以下循环函数。

**

$("input:text").each(function()
{
   if($(this).value==''){
    console.log('error');
   }
});

**

完整示例:

 <script>
  $(document).ready(function() {
  var max_fields      = 10; //maximum input boxes allowed
  var wrapper         = $(".input_fields_wrap"); //Fields wrapper
  var add_button      = $(".add_field_button"); //Add button ID

  var x = 1; //initlal text box count
  $(add_button).click(function(e){ //on add input button click
    e.preventDefault();
    if(x < max_fields){ //max input box allowed
        x++; //text box increment
        $(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
    }
  });

  $(wrapper).on("click",".remove_field", function(e)
  { //user click on remove text
    $("input:text").each(function()
    {
      if($(this).value == ''){
        console.log('error');
      }
    });

    e.preventDefault(); $(this).parent('div').remove(); x--;
  });

  });


</script>

<div class="input_fields_wrap">
  <button class="add_field_button">Add More Fields</button>
  <div><input type="text" name="mytext[]"></div>
</div>

您将在$(this).value中获取当前循环元素的值。

关于javascript - 验证动态创建的输入文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36068744/

相关文章:

javascript - 点击按钮运行nodejs脚本

javascript - 向函数添加多个语句

javascript - AngularJS:在同一元素上包含多个指令

jquery - 使用 CSS nth-child 选择单个表格单元格

javascript - 捕获离开页面 - jQuery

java - 如何在 DropWizard 中验证单个参数

javascript - jQuery 只允许选定的字符按键功能

Jquery DOM 就绪 - 并非每次都在 iphone 5 (ios 7) 上的 Safari 中加载

java - 如何进行条件级联验证(Hibernate)?

ruby-on-rails - 仅在创建和更新时验证 Rails 模型