2013-04-16 13 views
0

可能有人請幫助我,埃裏克·海因茲擺脫jQuery的多選所選的選項,並使用剃刀語法將它們插入到SDF文件jQuery的多選由埃裏克·海因茲 - 如何讓勾選的選項

這裏是我的剃刀+ HTML代碼 - 我全光照的WebMatrix startersite作爲

@{ var db = Database.Open("StarterSite"); 
    var selectQueryString = "SELECT * FROM Details where team like 'EMT'"; 
    } 
<script src="~/Scripts/jquery.ms.js"> 
</script> 
<script type="text/javascript"> 
    $(function() 
    { 
     $("select").multiselect(); 
    }); 
    $(function() 
    { 
     $("input[type=submit]").button(); 
    }); 


</script> 
<link href="~/Content/ms.css" rel="stylesheet" type="text/css"> 


<form method="post"> 




    <select multiple id="all" name="all" multiple="Multiple"> 
       @{foreach(var row in db.Query(selectQueryString)) 
      { 
      <option>@row.fname</option> 
      } 

     } 
    </select> 

     <input type="submit" value="Send Report" id="Repot" /> 

</form> 

回答

1

您可以將項目添加到陣列上點擊選擇的選項,然後使用該數組供以後使用的模板。有關各種事件,請參見documentation

點擊:當一個複選框被選中或取消選中火災。 js $(「#multiselect」)。on(「multiselectclick」,function(event,ui){/ * event:原始事件對象ui.value:複選框的值 ui.text:複選框的文本ui .checked:輸入是否爲 已選中或未選中(布爾型)* /});

像這樣的事情

$("select").multiselect({ 
    click: function(event, ui){ 
     if(ui.checked){//if checked 
      ...push the value into array 
     } 
     else {//if unchecked 
      ...remove that value from array 
     } 
    } 
}); 

更新

在他們site它提到。 (搜索'我如何...')

檢索所有選定的值?

最簡單的方法是調用VAL()的選擇框:

var values = $("select").val(); 

同樣可以使用多選API來完成。調用 getChecked方法和映射一個新的數組:

var array_of_checked_values = $("select").multiselect("getChecked").map(function(){ 
    return this.value;  
}).get(); 
+0

我不知道我是否正確,但我使用的是Eric Hynds的jquery插件,並且需要一些關於它的getchecked()方法的幫助。 getChecked \t返回所有選中複選框的數組。 http://www.erichynds.com/blog/jquery-ui-multiselect-widget – user2285398

+0

上面的代碼使用了Eric Hynds插件。當您選擇它時,我將在數組中添加選定的選項。你面臨的確切問題是什麼? – anpsmn

+0

謝謝你的回覆。 我需要從multiselect中獲取選中的項並將它們插入到cshtml中的數據庫中。 – user2285398

1

這可能有點爲時已晚,你的項目,但希望能幫助別人。

我用簡單的方法在更新:

var values = $("select").val(); 

因此,如果您勾選的選項2,4和6,在「值」會是這樣的字符串:「2,4,6」 。如果您正在開發MVC項目,則需要將該字符串保存在窗體上的隱藏字段中,否則控制器將無法訪問它。在我的代碼中,我使用「close」事件將輸出(即2,4,6)寫入一個名爲「output」的隱藏文本框。

一些代碼片段:

在窗體上創建一個隱藏字段:在

<script type='text/javascript'> 
     $('select').multiselect(function() { 
      //your code 
      close: function(event, ui){ 
       var values = $('select').val(); 
       $('#output').val(values); 
       // you can inspect the value using alert(values); 
      }, 
      // your code 
      // your code 
     }); 
    </script> 

現在:

@Html.Hidden("output", null) 

定義在初始多選定義中的 「關閉」 事件處理程序回覆你編輯動作的一部分,form [「output」]等於「2,4,6」。

如何使用它來更新數據庫取決於你項目中的很多參數。如果您一直堅持使用MVC模式指南,則只需在控制器Edit(編輯)操作中刷新模型,然後使用修改後的模型調用update(或put)方法。

希望這會有所幫助。

謝謝

Nasser。

相關問題