【问题标题】:jquery formvalidation with selectbox带有选择框的jquery formvalidation
【发布时间】:2015-07-11 17:29:49
【问题描述】:

我正在使用这个插件formValidation 我的问题是,如果我在选择框中选择值 3,我只想触发必填字段(年龄、姓名、年份),这 3 个字段将是必需的。如何在表单验证?

      <form name="myform">


                     <div class='form-group'>
                         <label>Type</label>
                         <div>
                             <select class='form-control' name='type' id='type'>
                                   <option value ='1'> 1 </option>
                                   <option value ='2'> 2 </option>
                                   <option value ='3'> 3</option>
                                   <option value ='4'> 4 </option>
                             </select>
                         </div>
                     </div>



                     <div class="form-group">
                         <label for="age">age</label>
                         <input type="text" class="form-control" id="age" name="age">
                     </div>

                     <div class="form-group">
                         <label for="name">name</label>
                         <input type="text" class="form-control" id="name" name="name">
                     </div>

                     <div class="form-group">
                         <label for="year">age</label>
                         <input type="text" class="form-control" id="year" name="year">
                     </div>

        </form> 

这是我的 js

             $('#myform').formValidation({
              framework: 'bootstrap',
              icon: {
                  valid: 'glyphicon glyphicon-ok',
                  invalid: 'glyphicon glyphicon-remove',
                  validating: 'glyphicon glyphicon-refresh'
              },
              fields: {

                  year: {
                      validators: {
                          notEmpty: {
                              message: 'The year is required'
                          }
                      }
                  },
                  name: {
                      validators: {
                          notEmpty: {
                              message: 'The name is required'
                          }
                      }
                  },
                  age: {
                      validators: {
                          notEmpty: {
                              message: 'The age is required'
                          }
                      }
                  }



              }
          });

提前谢谢你。

【问题讨论】:

    标签: javascript jquery formvalidation-plugin


    【解决方案1】:

    您可以使用 enableFieldValidators 方法来启用和禁用字段的验证器。

    首先,您必须使用设置为 false 的选项 enabled 禁用字段的所有验证器,然后当您选择值 3 时选择框,启用它们。

    见以下代码:

    $(document).ready(function () {
        $('#myform').formValidation({
            framework: 'bootstrap',
            icon: {
                valid: 'glyphicon glyphicon-ok',
                invalid: 'glyphicon glyphicon-remove',
                validating: 'glyphicon glyphicon-refresh'
            },
            fields: {
                year: {
                    // Disable the validators of the field 'year'
                    enabled: false, // <==
                    validators: {
                        notEmpty: {
                            message: 'The year is required'
                        }
                    }
                },
                name: {
                    // Disable the validators of the field 'name'
                    enabled: false, // <==
                    validators: {
                        notEmpty: {
                            message: 'The name is required'
                        }
                    }
                },
                age: {
                    // Disable the validators of the field 'age'
                    enabled: false, // <==
                    validators: {
                        notEmpty: {
                            message: 'The age is required'
                        }
                    }
                }
            }
        });
    });
    
    $('#type').on('change', function (e) {
        if (parseInt($('#type').val(), 10) === 3) {
            // Enable the validators of your fields
            // 'age', 'name' & 'year'
            $('#myform').data('formValidation').enableFieldValidators('age', true);
            $('#myform').data('formValidation').enableFieldValidators('name', true);
            $('#myform').data('formValidation').enableFieldValidators('year', true);
        } else {
            // Disable them again
            $('#myform').data('formValidation').enableFieldValidators('age', false);
            $('#myform').data('formValidation').enableFieldValidators('name', false);
            $('#myform').data('formValidation').enableFieldValidators('year', false);
        }
    });
    

    工作示例:

    参考资料:

    【讨论】:

    • 这行 parseInt($('#type').val(), 10) 中的 10 是什么意思?
    • 10 表示十进制基数(数学数字系统中的基数)
    • 好的,谢谢...顺便问一下,为什么我的提交按钮在验证时被禁用?我可以让它不被禁用吗?
    • 验证什么?只有在启用字段的验证器时,提交按钮才会触发验证。
    猜你喜欢
    • 1970-01-01
    • 2017-11-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多