2011-07-01 104 views
0

我有一個非常簡單的模型,我正在嘗試使用jQuery驗證。jQuery驗證asp.net mvc 3

型號:

public class Escalation { 
    public int Id { get; set; } 
    public int Primary { get; set; } 
    public int Backup { get; set; } 

    public virtual Contact PrimaryContact { get; set; } 
    public virtual Contact BackupContact { get; set; } 
} 

我試圖做的是通過用戶界面執行這兩個主要和備份是有效的。然而,因爲這些是聯繫人,我們有成千上萬的人,所以我不想把它們全部放入<select>控件中。我正在嘗試使用<input>並讓jquery.autocomplete()幫助用戶選擇一個有效的聯繫人。但我想確保它不僅是必需的,而且是有效的。

我到目前爲止所嘗試的是訂閱自動填充事件「選擇」,我更新了一個隱藏的字段,所選值和一切正常。但是,如果用戶實際上沒有選擇一個人或輸入一些無效數據,那麼所有事情都會中斷。

也許我讓這個簡單的表單過於複雜?任何有關如何實現我想要完成的建議都將不勝感激。

這是我想要完成的一個例子。 http://jsfiddle.net/2wCQs/2/

+0

你對'有效'的標準是什麼,你是指整數,還是用戶試圖選擇的聯繫人存在?它存在於DB中的 – M3NTA7

+0

@ M3NTA7。 –

回答

0

聽起來好像您需要先創建一個ajax回調來驗證他們輸入的聯繫人的ID是否有效。

訂閱onblur事件,如果ID被擴展,或者你可以使用ontextchanged事件,如果你想在飛行中驗證(我建議使用超時,以便增量輸入的人不會產生15個AJAX調用時鍵入15個字符)。

0

也許你可以使用變化事件自動完成的,看看有什麼選擇,如果用戶實際上並不選擇一些無效數據中的項目或類型,而是在更改事件中知道它,而不是僅在選擇項目時觸發的選擇事件。

change: function(event, ui) { 
    alert(ui.item ? 
     "changed to/ selected: " + ui.item.value + " aka " + ui.item.Id : 
     "Nothing selected, input was " + this.value); 
}