2011-10-10 67 views
0

我有四個輸入字段:jQuery驗證 - 只允許填充兩個四個字段 - 如何驗證?

MaxWidth 
MaxHeight 

Width 
Height 

我想驗證只有MaxWidth + MaxHeightWidth + Height已輸入。用戶不應該能夠爲這兩組提交值。

有什麼想法?


更新

我使用的是.NET MVC3的默認應用程序提供的jquery.validate.min.js

這是我basicly需要的

<-- Scale a picture to one of the max attributes and keeping the aspect ratio --/> 
    <input type="text" name="cmdMaxWidth" /><br /> 
    <input type="text" name="cmdMaxHeight" /><br /> 
    <br /> 
    <-- Scale a picture to the exact width and height attributes, still keeping the aspect ratio but addting whitespace for the rest --/> 
    <input type="text" name="cmdWidth" /><br /> 
    <input type="text" name="cmdHeight" /><br /> 
驗證

更新

我已經重寫了我的表單,以反映Mohen在其答案中的命令中描述的UI/UX設置。

,但我會獎勵Jayendra帕蒂爾與「接受」的答案,但我會「標誌了」 Mohens答案和建議

親切的問候 \ t

回答

0

你也可以嘗試使用驗證與依賴。
添加一個方法來檢查其他兩個字段。
並使所需的依賴於其他領域。

演示 - http://jsfiddle.net/b3RmV/

舉例cmdMaxWidth場(IDS硬編碼的,你可以通過爲PARAMS) -

jQuery.validator.addMethod("allowed", function(value, element) { 
    return !($('#cmdWidth').val().length > 0 || $('#cmdHeight').val().length > 0) 

}, "Not allowed"); 

$(document).ready(function(){ 
    $("#commentForm").validate(
     { rules: {  
       cmdMaxWidth: {  
        required: function(element){ 
         return $('#cmdMaxHeight').val().length > 0; 
        }, 
        allowed: true 
       } 
      } 
     } 
    ); 
}); 
1

您可以輕鬆地禁用其他輸入時一個是獲得價值。

比如你有這樣的兩個輸入:

<input id="width" placeholder="width"/> 
    <input id="maxwidth" placeholder="max width"/> 

,你想不讓當用戶輸入寬度maxwidth輸入。然後,你可以這樣做:

$('#width').change(function(){ 
    if($(this).val() != ''){ 
    $('#maxwidth').attr('disabled', 'disabled'); 
    } 
}); 

您可以爲寬度做同樣反之亦然和maxwidth

JsBin File

+0

這似乎是公平的場與場的 「ON/OFF」,但它會得到相當雜亂的檢查,當我必須檢查集合中的字段。如果設置了最大寬度,那麼不應該輸入寬度和高度,對於這些字段這是相同的,它將始終是1字段輸入2字段來禁用。然後相反,如果一個領域是空的,女巫應該激活,如果仍然有輸入的東西在一對...認爲代碼會變得非常混亂......希望更好解決方案,othervise我會根據你的輸入做一個大的驗證 –

+1

我剛剛回答你的問題,因爲你問。我甚至沒有寫完你需要的代碼,這是你編寫其他輸入代碼的任務。但如果你問什麼是最好的用戶界面/用戶體驗,同時給用戶兩個輸入,那麼我的答案就完全不同了。我想你需要一個複選框來詢問你的用戶是否需要輸入maxheight/maxwidth或height /而不是有四個文本輸入。就像這樣http://jsbin.com/isamuv/2 – Mohsen

+0

首先,我在我的問題中說過,我只希望用戶能夠填寫其中一個集合...我知道,並且可以認爲不會看到,人們爲我寫代碼,但引導我的方向是正確的......最後,我喜歡你用複選框來指示賦值是最大值還是正常值......謝謝你的提議 –