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

时间:2017-07-20 09:08:13

标签: javascript jquery validation parsley.js

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

这是我到目前为止所做的:

mfence

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

<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> 它希望所有字段都具有最小值。但是我只需要一个字段来获得最小值&#34; 1&#34;。

1 个答案:

答案 0 :(得分:2)

你必须编写自定义验证器。 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;
  }
});