2011-10-28 51 views
-1

我在asp.NET中編寫應用程序,我使用MVC 3模型(視圖引擎Razor)。我不知道如何在jQuery自動完成中搜索合適的名稱並按下名稱上的Enter後,應用程序將檢查適當的RadioButton。使用jQuery自動完成搜索名稱,按回車後 - 選擇RadioButton

<script type="text/javascript"> 
    $(function() {      
     $("#tags").autocomplete({ 
      source: "/Home/TakeGry", 
      minLength: 1, 
      select: function (event, ui) { 
      // I suspect that something needs to add here 
      } 
     }); 
    }); 
</script> 

<table> 
    <tr> 
     <th> 
      <div class="demo"> 
       <div class="ui-widget"> 
        <label for="tags">Surowce: </label> 
        <input id="tags" /> 
        <input id="hiddenElementID" type="hidden" /> 
       </div> 
      </div> 
     </th> 
     <th> 

     </th> 
    </tr> 

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.Nazwa) 
     </td> 
     <td> 
      // One of these RadioButton's should be checked, when I hit enter 
      @Html.RadioButtonFor(modelItem => item.GraID, new { id = item.GraID }) 
     </td> 
    </tr> 
} 

回答

0

幾個小時的搜索後,我找到了答案,我把如下:

我要我的腳本改爲:

<script type="text/javascript"> 
$(function() { 
    $("#tags").autocomplete({ 
     source: "/Home/TakeGry", 
     minLength: 0, 
     select: function (event, ui) { 
      if (ui.item) { 
       $('input[name="' +ui.item.value+ '"]').attr('checked', true);      
      } 
     } 
    }); 
}); 

而在的foreach(其中打印姓名和單選按鈕),我必須改變即:

@Html.RadioButtonFor(modelItem => item.GraID, new { id = item.GraID }) 

要:

<input type="radio" name='@item.Nazwa' id="radioButton" value="{ id = @item.GraID }" /> 

感謝您的幫助:)。

0

該函數只需要一個字符串集合。 你可以做一個手動杆,它得到一個空格分隔字符串,然後拆分空間到一個數組並把它傳遞給函數:

$(function() { 
    var list; 
    $.post("/Home/TakeGry", { }, function(result) { 
     list = result.split(' '); 
    }); 


    $("#tags").autocomplete(list); 
}); 
+0

我的jQuery自動完成功能工作正常,但是當我從自動完成列表中選擇某項時,必須自動選擇合適的RadioButton。我不知道如何異步執行,無需重新加載頁面。 – tzm

+0

好的,我認爲你應該可以在這個事件處理者的幫助下完成它: [link](http://docs.jquery.com/Plugins/Autocomplete/result#handler) –