2013-10-19 68 views
1

我想做驗證,這取決於其他輸入值以相同的形式。jQuery驗證與取決於

$("#step1").validate({ 
    rules: { 
    weight: { 
     required: true, 
     max: $('#maxweight'), 
     min: 1 
    }, 
... 

我正在閱讀所有文檔:jqueryvalidation.org,但我無法找到任何有關從表單使用其他值來驗證其他#id的最大值的任何內容。

非常感謝您的幫助。

---編輯---

JS Fiddle,我想驗證權重將取決於maxweight。 後來我想這樣做,如果與功能驗證:

if(maxweight == 10) { 
    max: 10 
} 
else if(maxweight == 20) { 
    max: 20 
} 

--- SOLUTION ---

感謝所有幫助:)我這樣做的:JS Fiddle

回答

1

這裏是一個例如:

$(".selector").validate({ 
    rules: { 
    email: { 
     depends: function(element) { 
     // Do what you want to test 
     return $("#contactform_email:checked"); 
     } 
    } 
    } 
}); 

你想要的東西,這裏是解釋您的問題的鏈接jQuery validation - changing value of max at runtime

這裏是解決方案:http://jsfiddle.net/rUyAx/2/

$(document).ready(function() { 
$("#step1").validate({ 
    rules: { 
     weight: { 
      required: true, 
      //max: $("#maxweight").val(), 
      min: 1 
     } 
    } 
}); 

$("#submit").click(function(){ 
    $('#weight').rules("remove", "max"); 
    $('#weight').rules("add", { 
    max: $('#maxweight').val() 
    }); 
    $("#step1").submit(); 
}); 

}); 

(我已經添加了一個ID,你的提交按鈕。)

+0

感謝您的回覆,但我仍然不知道它在我的例子中如何使用。 – Daniel

+0

好:)所以這是鏈接到我的代碼:[鏈接](http://jsfiddle.net/AT7V3/),我想驗證體重將取決於最大重量。我在上面的問題中編輯過。 – Daniel

+0

嗯....這是第一次使用,例如:最大重量:5,你的體重:6 - 這是錯誤,所以我們改變最大重量爲10,仍然是同樣的錯誤。 – Daniel

2

嘗試。這將根據最大重量驗證您的體重。

$("#step1").validate({ 
     rules: { 
      weight: { 
       required: true, 
       min: 1, 
       depends:function(element){ 
        return $(element).val() < $("#maxweight").val(); 
       }    
      } 
     } 
    }); 
+0

有了這個解決方案,你不使用「最大」的錯誤信息。但是你的解決方案也適用。 – kmas

+0

感謝您的幫助:)這是非常有用的:) – Daniel

+0

你總是可以像'max'那樣爲'depend'放置一個錯誤信息。 –