首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用"formvalidation.io“验证动态输入字段

用"formvalidation.io“验证动态输入字段
EN

Stack Overflow用户
提问于 2015-05-31 19:02:46
回答 1查看 6.1K关注 0票数 1

我正在使用插件表单验证来验证表单。这个插件运行得很棒。

但在验证动态生成的输入方面,我面临着问题。

下面的代码用于动态生成输入字段

代码语言:javascript
复制
$("#countaccmp").change(function() {
  var selVal = $(this).val();
  $("#textboxDiv").html('');
  if(selVal > 0) {
    for(var i = 1; i<= selVal; i++) {
        $("#textboxDiv").append('<input type="text" name="accmp'+i+'" 
        id="accmp'+i+'" class="form-control " />');
    }
  }       
})

我试着用插件验证,如下所示:

代码语言:javascript
复制
$('#form').formValidation({
       //--------- Plugin Validator Method -----------//
})
.on('change', '[name="countaccmp"]', function(e) {
        //---- Wrote validation here, It works(only on change) but form is getting submitted 
               even after error ----//
       $('.dynDiv').each(function(){
          var input = $(this).children('input');
          var dynField = 
           ($(this).find("input[name^='accmp']").attr('name'));

            if(input.val() == '' || input.val() == undefined){
                alert("Error");
                return false;
            }
 })
 .on('success.form.fv', function(e) {
         //---- Wrote validation here, It works but form is getting 
                submitted even after error ----//
          Same Validation As above
  })

请让我知道解决办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-01 14:29:26

您应该将您的输入添加到插件中,以便进行验证。

要做到这一点,请使用addField方法,请参见下面所示:

代码语言:javascript
复制
$("#countaccmp").change(function () {
    var selVal = $(this).val();
    $("#textboxDiv").html('');
    if (selVal > 0) {
        for (var i = 1; i <= selVal; i++) {
            var input = ''
                + '<div class="form-group">'
                + '    <label class="col-sm-3 control-label" for="accmp' + i + '">Accmp ' + i + '</label>'
                + '    <div class="col-sm-5">'
                + '        <input type="text" name="accmp' + i + '" id = "accmp' + i + '" class = "form-control " / >'
                + '    </div>'
                + '</div>';
            $("#textboxDiv").append(input);
            $('#defaultForm').formValidation('addField', 'accmp' + i, {
                validators: {
                    // Here, add your field validators.
                }
            });
        }
    }
});

演示:

  • http://jsfiddle.net/Arkni/fpps1dqn/

参考文献:

  • addField文档:http://formvalidation.io/api/#add-field
  • 使用addFieldhttp://formvalidation.io/examples/adding-dynamic-field/的示例
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30561474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档