簡體   English   中英

jQuery驗證方法-驗證

[英]jQuery Validation Method - validation

在禁用Idealforms中的驗證時遇到問題,我希望以下字段未通過驗證

郵遞區號3,備忘錄2,上一個年度,上一個月

直到current_year中的值小於3

$(document).ready(function(){

$('#current_year').on("input", function() {
    var dInput = this.value;
    console.log(dInput);
    $('#current_year').text(dInput);

    $('form.idealforms').idealforms('addRules', {
        'postcode3': ( parseInt( $('#current_year').val() ) < 3) ? 'required' : '',
    });
});



      $('form.idealforms').idealforms({

      silentLoad: false,    

      rules: {
        'postcode2': 'required',
        'memo1': 'required',
        'current_year': 'required',
        'current_month': 'required',
      },


      onSubmit: function(invalid, e) {
        e.preventDefault();
        $('#invalid')
          .show()
          .toggleClass('valid', ! invalid)
          .text(invalid ? (invalid +' invalid fields') : 'All good!');
      }
});

假設您其余的代碼是正確的,我認為問題是val()返回的是string而不是number 您需要像這樣編寫表達式

( parseInt( $('#current_year').val() ) < 3 ) : 'required' : '';

或將val()與數字的字符串值進行比較。

( $('#current_year').val() < '3' ) : 'required' : '';

編輯

第二個問題是,一旦聲明了規則,代碼中的任何內容都不會更改規則。 因此,如果onload $('#current_year').val()小於3,則始終需要輸入字段。

根據插件文檔,您可以在初始化插件后添加規則,如下所示

$('form').idealforms('addRules', {
  'comments': 'required minmax:50:200'
});

因此,您也許可以使用它來更新規則。

$('#current_year').on("input", function() {

    $('form.idealforms').idealforms('addRules', {
        'postcode3': ( parseInt( $('#current_year').val() ) < 3) ? 'required' : '',
    });

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM