2011-06-09 98 views
1

我有啊HTML5形式與定義爲動作如下:針對ASP.Net-MVC3中的對象進行客戶端驗證?

@using (Html.BeginForm("SearchAction", "ResultsController")) 

的形式發生在兩個文本字段:

<input type="text" name="txtSearchTerm" id="txtSearchTerm" class="frontPageInput" placeholder="Begin your search..." required />   
<input type="text" name="txtGeoLocation" id="txtGeoLocation" class="frontPageInput" required />   

的txtGeoLocation字段是從一個高速緩存對象送入自動填充字段,通過控制器,並通過模型庫類通過下面的jQuery代碼反饋:

<script type="text/javascript" language="javascript"> 
    $(function() { 
     $("#txtGeoLocation").autocomplete(txtGeoLocation, { 
      source: function (request, response) { 
       $.ajax({ 
        url: "/home/FindLocations", type: "POST", 
        dataType: "json", 
        selectFirst: true, 
        autoFill: true, 
        mustMatch: true, 
        data: { searchText: request.term, maxResults: 10 }, 
        success: function (data) { 
         response($.map(data, function (item) { 
          return { label: item.GeoDisplay, value: item.GeoDisplay, id: item.GeoID } 
         })) 
        } 
       }) 
      }, 
      select: function (event, ui) { 
       alert(ui.item ? ("You picked '" + ui.item.label + "' with an ID of " + ui.item.id) 
        : "Nothing selected, input was " + this.value); 
       document.getElementById("hidLocation").value = ui.item.id; 
      } 
     }); 

    }); 

有用於調試的警報那裏。點擊下拉的文本時,此警報會觸發,但如果您鍵入整個單詞並點擊提交,則不會觸發。

我想先驗證客戶端地理文本框中的文本,以確保它是包含在集合中的值,而不是,將文本框顯示爲紅色,並與之通信。

謝謝。

回答

0

您可以使用[Remote()]屬性驗證值是否在列表中使用jquery遠程驗證。當您回發時,您還必須在服務器端執行相同的檢查。