2017-08-10 65 views
0

我在語法上遇到了在輸入字段驗證中獲取2個範圍值的問題。Jquery驗證 - 取決於選擇值的2個範圍值

我的表單有2個選擇字段和一個文本輸入字段。

If select1 = 1 and select2 = A,我想文本字段上的範圍值爲1 to 120

If select1 = 1 and select2 = B,我想在文本字段上的範圍值是121 to 500

我的驗證代碼:

PrepurchasePlotNumber: { 
    digits: true, 
    required: { 
     depends: function() { 
      return ($("input[name=PlotType]:checked").val() == "Prepurchase"); 
     } 
    }, 
    range: { 
     param: [1, 120], 
     depends: function() { 
      return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A"); 
     } 
    }, 
    range: { 
     param: [121, 500], 
     depends: function() { 
      return ($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "B"); 
     } 
    } 
}, 

數字和要求做工精細。 我無法讓我的代碼正確測試兩種範圍情況。任何時候只有一個人會工作。 請有人指出我在正確的方向。

回答

0

只有一個人可以在任何時候工作。

因爲你不能在同一個字段上聲明兩次相同的規則。第二個可能會超過第一個。

此外,您使用depends編寫它的方式,您說的只是在條件滿足時才需要range規則。

您只需使用函數return取決於條件的參數。

PrepurchasePlotNumber: { 
    digits: true, 
    range: function() { 
     if (($("#PrepurchasePlotArea").val() == "1") && ($("#PrepurchasePlotRow").val() == "A")) { 
      return [1, 120] 
     } else { 
      return [121, 500] 
     } 
    }, 
    .... 

根據需要修改邏輯。

+0

謝謝@Sparky。正在圍繞閱讀太多線程的圈子,讓我的邏輯完全混淆。 –