2016-03-06 41 views
0

我有這個驗證代碼,它看起來工作正常,當我把數字字段中的文本,但是當我把值低於1,這是規則設置爲min,沒有消息出現甚至應該規則最小值不工作與jquery驗證

jQuery(function() { 
    $('#payment_amount').validate({ 
     lang: 'sk', 
     rules: { 
      "payment[amount]": { 
      required: true, 
      min: 1, 
      max: 9999999 
      } 
     }, 
     highlight: function(element) { 
      $(element).parent().addClass('state-error'); 
     }, 
     unhighlight: function(element) { 
      $(element).parent().removeClass('state-error'); 
     } 
     }); 
    }); 

當我用輸入型號不同的頁面上相同的代碼,檢查最小值工作

這是我創造我的輸入字段

<%= f.number_field :amount, :style=>"-moz-appearance:textfield;", :required=> true %> 

一nd這是html

<input type="number" id="payment_amount" name="payment[amount]" required="required" style="-moz-appearance:textfield;" aria-required="true" novalidate="novalidate" aria-invalid="false"> 

我錯過了什麼?

回答

0

好吧,我已經找到了解決辦法 不知道爲什麼,但即使是標準的審定正在#element,最小值只能當我使用形式元素,而不是#INPUT場

$('form').validate({ 
    lang: 'sk', 
    rules: { 
     'payment[amount]': { 
     min: 1 
     } 
    }, 
    highlight: function(element) { 
     $(element).parent().addClass('state-error'); 
    }, 
    unhighlight: function(element) { 
     $(element).parent().removeClass('state-error'); 
    } 
    }); 
+0

將'.validate()'方法附加到'form'元素以初始化窗體上的插件;這就是爲什麼在'rules'對象中指定每個字段'name'的原因。 – Sparky

0

你已經把它貼在.validate()方法與id="payment_amount"您輸入字段...

$('#payment_amount').validate({ 
    lang: 'sk', 
    rules: { 
     "payment[amount]": { 
     ... 

但是,你應該到.validate()方法連接到form元素INIT ialize您窗體上的插件;這就是爲什麼在rules對象中指定了每個字段name的原因。

$('#my_form_id').validate({ // <- attach to the form; these are the options for this form 
    lang: 'sk', 
    rules: { 
     "payment[amount]": { // <- the field name is specified here 
     ...