有人可以帮我从Eric Hynds的jQuery MultiSelect中获取所选的选项,并使用razor语法将它们插入到sdf文件中
这是我的Razor + 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>
答案 0 :(得分: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();
使用multiselect API可以实现同样的目的。打电话给 getChecked方法并映射一个新数组:
var array_of_checked_values = $("select").multiselect("getChecked").map(function(){
return this.value;
}).get();
答案 1 :(得分:1)
对于您的项目来说,这可能有点太晚了,但它有望帮助其他人。
我在更新中使用更简单的方法:
var values = $("select").val();
因此,如果您选中了选项2,4和6,则“值”将是这样的字符串:“2,4,6”。如果您正在开发MVC项目,则需要将此字符串保存在表单上的隐藏字段中,否则控制器将无法访问它。在我的代码中,我使用“close”事件将输出(即2,4,6)写入名为“output”的隐藏文本框。
一些代码段:
在表单上创建一个隐藏字段:
@Html.Hidden("output", null)
在初始多选定义中定义“close”事件处理程序:
<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>
现在,在编辑动作的后期部分,表单[“output”]等于“2,4,6”。
如何使用它来更新数据库取决于项目中的许多参数。如果您一直坚持MVC模式指南,则只需在控制器编辑操作中刷新模型,并使用修改后的模型调用更新(或put)方法。
希望这有帮助。
由于
纳赛尔。