javascript - 如何让 parsley.js 验证其中一个字段的数字是否最小值等于 1

标签 javascript jquery validation parsley.js

我的表单上有成人、 child 和婴儿字段。所有这 3 个字段都有一个默认值,即 0。我正在使用 parsley验证表单。我需要欧芹来验证是否至少有一个字段的值大于 0。如果其中一个字段大于 0,则应该验证表单。如果不是,则在尝试提交时应该给出错误。我用过this来自欧芹官方网站的示例。

这是我到目前为止所拥有的:

    <input  type="text" name="nAdults" id="nAdults" value="0" data-parsley-group="block1" class="form-control " />

    <input  type="text" name="nChildren" id="nChildren" value="0" data-parsley-group="block2" class="form-control "/> 

    <input  type="text" name="nBabies" id="nBabies" value="0" data-parsley-group="block3" class="form-control " /> 

<script type="text/javascript">
            //parsley validate
            var form = $('#{{ $pageModule }}FormAjax'); 
            form.parsley().on('form:validate', function (formInstance) {
            var ok = formInstance.isValid({group: 'block1', force: true}) || formInstance.isValid({group: 'block2', force: true}) || formInstance.isValid({group: 'block3', force: true});
            $('.invalid-form-error-message').html(ok ? '' : 'You must fill at least one of the Adult, Child or FOC Fields!').toggleClass('filled', !ok);
            if (!ok)
            formInstance.validationResult = false;
            });
            //form submit
            form.on('submit', function(e) {
                var f = $(this);
                f.parsley().validate();
                if (f.parsley().isValid()) {
                    var options = { 
                        dataType:      'json', 
                        beforeSubmit :  showRequest,
                        success:       showResponse  
                    }  
                    $(this).ajaxSubmit(options); 
                    return false;
                }
                else    { 
                    return false; }
                    e.preventDefault();
            }); 
        </script>

如果您能向我展示如何验证这 3 个字段,我将不胜感激。当我写的时候

data-parsley-min="1" 它期望所有字段都有一个最小值。但我只需要一个字段的最小值为“1”。

最佳答案

您必须编写自定义验证器。 Here你能找到一个很好的例子来说明如何做到这一点吗?

my own working example (参见控制台)

// bind event after form validation
$.listen('parsley:form:validated', function(ParsleyForm) {
// We only do this for specific forms
if (ParsleyForm.$element.attr('id') == 'myForm') {
    var combinations = ParsleyForm.$element.find('input')
    ,counter=0;
    $.each($('input'),function(){
        counter+=($(this).val());
    });
    if(counter>0) 
        ParsleyForm.validationResult = true;
  }
});

关于javascript - 如何让 parsley.js 验证其中一个字段的数字是否最小值等于 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45210215/

相关文章:

javascript - 类型错误 : $ is not a function in AJAX and Wordpress

javascript - 查找单击按钮的 ID

android - 在android上检查字符串是网址还是ip

java - 多输入验证整合 Java

java - 如何将复杂的业务验证与 JSR-303 合并?

javascript - 查找值的 XML 节点位置的最简单方法是什么?

javascript - Angular 与 CanvasJS 图表在 ngAfterViewInit 中启动

javascript - div显示后如何播放视频?

javascript - jQuery 追加如果不存在

javascript - Coffeescript:跳出 forEach 循环