簡體   English   中英

jQuery驗證取決於規則不起作用

[英]jQuery validation depends rule not working

我正在開發一個注冊表單,並使用jQuery驗證來檢查表單。 我想驗證出生日期,這樣他們就不能選擇例如2月31日。 我的代碼是:

birthday:  {
             required: true,
             min: 1,
             max: {
             depends: function(element) {
              switch (parseInt($('#birthmonth').val())){
                     case 2:
                            maxday = 29;
                            break;
                     case 4:
                     case 6:
                     case 9:
                     case 11:
                            maxday = 30;
                            break;
                     default:
                            maxday = 31;                                
                 }                                                
              return maxday;
                 }}
            },

switch正常工作,並且該函數每個月都返回正確的值,但是即使我選擇了第7天之后的任何月份,驗證仍然顯示無效的選擇。我試圖將返回值轉換回字符串,但仍然無法正常工作。

在自定義方法中,這對您會更好一些。 通過使用addMethod方法創建新規則。

$(document).ready(function () {

    $('#myform').validate({
        rules: {
            birthday: {
                required: true,
                min: 1,
                mymax: ['#birthmonth']
            }
        }
    });

    jQuery.validator.addMethod('mymax', function (value, element, params) {
        switch (parseInt($(params[0]).val())) {
            case 2:
                maxday = 29;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                maxday = 30;
                break;
            default:
                maxday = 31;
        }
        params[1] = maxday;  // simply used for populating message at {1}
        return parseInt(value) <= maxday;
    }, "Please enter a value less than or equal to {1}");

});

工作演示: http//jsfiddle.net/4Uv8Y/

暫無
暫無

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

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