我有一个web应用程序,我在页面加载时使用数据库中的项目填充multiselectlistbox。
我从列表框中选择了所有项目,但它们按照填充顺序排列。
我希望这些项目符合用户选择的顺序。
所以对于这个问题我在列表框上找到了使用客户端.click()
事件的解决方案,因为我检测到了selcted项并将其值保存在hiddenfield中。这也很有用,但问题出现了当用户按下输入密钥输入鼠标时单击以选择项目。此时它不会触发.click()事件,所以我已经使用过了
onkeypress()
,onkeyup()
但它根本不会发射
这是我的代码:
<script type="text/javascript">
$(document).ready(function() {
$(".chzn-results .active-result").click(function(event) {
var hdfld = document.getElementById("hdn_menuitems");
if (hdfld.value == "") {
hdfld.value = $(this).index();
}
else {
hdfld.value = hdfld.value + "," + $(this).index();
}
});
$(".chzn-results .active-result").keydown(function(event) {
$(".chzn-results .active-result").keyup(function(event) {
alert("Event");
if(event.keyCode==13)
{
var hdfld = document.getElementById("hdn_menuitems");
if (hdfld.value == "") {
hdfld.value = $(this).index();
}
else {
hdfld.value = hdfld.value + "," + $(this).index();
}
}
});
});
</script>
这是我的列表框:
<asp:ListBox ID="dr_menuitem" runat="server" class="chzn-select" style="width:575px;" SelectionMode="Multiple" >
<asp:ListItem></asp:ListItem>
</asp:Listbox>
我使用[http://harvesthq.github.com/chosen/] [1]
使用了列表框答案 0 :(得分:0)
这样做: -
$('.chzn-results .active-result').keydown(function(e) {
if (e.keyCode == 13)
{
var hdfld = $('#hdn_menuitems');
if (hdfld.value == "")
$(hdfld).val($(this).index());
else
$(hdfld).val(hdfld.value + "," + $(this).index());
}
});