Javascript 如何使用jQuery UI在模式对话框中重置selectmenu
我在jQuery模式对话框中有一个jQuery UIJavascript 如何使用jQuery UI在模式对话框中重置selectmenu,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我在jQuery模式对话框中有一个jQuery UIselectmenu。当模式对话框关闭时,无论是通过“确定”、“取消”按钮还是“关闭”框,我都想清除对选择菜单的选择 我正在尝试更新一个我没有编写的web应用程序,以消除对jAlert/jConfirm/jPrompt库的使用,该库似乎已被撤销。在我拆开这个应用程序之前,我构建了一个我想使用的示例,我编写这个应用程序并不是为了替换许多jPrompt调用 我已经演示了我可以在模型对话框中显示selectmenu,并可以将选择返回到模态对话框,在那
selectmenu
。当模式对话框关闭时,无论是通过“确定”、“取消”按钮还是“关闭”框,我都想清除对选择菜单的选择
我正在尝试更新一个我没有编写的web应用程序,以消除对jAlert/jConfirm/jPrompt库的使用,该库似乎已被撤销。在我拆开这个应用程序之前,我构建了一个我想使用的示例,我编写这个应用程序并不是为了替换许多jPrompt调用
我已经演示了我可以在模型对话框中显示selectmenu
,并可以将选择返回到模态对话框,在那里我打算将其存储在需要的地方
到目前为止,我无法做到的是,当用户退出模式对话框时,通过单击“确定”或“取消”按钮或“关闭”框,从选择菜单中清除选择。我试图应用我在这个网站上找到的大约六条建议,但在这种情况下这些建议都不起作用
我在这里包括了我的示例:
<button id="opener">Change Category</button>
<div id="popup_message" style="display: none;">
<form id="category_popup">
<select name="category" id="category">
<option>Choose a category</option>
<option value="G1">G1</option>
<option value="G3">G3</option>
<option value="C1G1">C1G1</option>
<option value="C2G1">C2G1</option>
<option value="C3G1">C3G1</option>
<option value="C4G1">C4G1</option>
<option value="C5G1">C5G1</option>
<option value="C6G1">C6G1</option>
<option value="C7G1">C7G1</option>
<option value="C8G1">C8G1</option>
<option value="C9G1">C9G1</option>
<option value="C1G3">C1G3</option>
<option value="C2G3">C2G3</option>
</select>
</form>
</div>
<script>
$('#popup_message').dialog({
autoOpen: false,
modal: true,
title: 'Choose Category',
buttons: [{
text: 'OK',
click: function() {
alert('Category= ' + $('#category').find(':selected').text());
$(this).dialog('close');
return $('#category').val();
}
},
{
text: 'Cancel',
click: function() {
$(this).dialog('close');
}
}
]
});
$('#opener').on('click', function() {
$('#popup_message').dialog('open');
});
$('#popup_message').on('dialogclose', function() {
// $('#category_popup option').attr('selected',false);
// $('#category_popup').trigger('reset');
$('#category').selectmenu('refresh');
// $(':input','#category_popup').removeAttr('selected');
// $('#category_popup').val([]);
truth = true; // to allow a breakpoint here
});
$('#category').selectmenu();
</script>
更改类别
选择一个类别
G1
G3
C1G1
C2G1
C3G1
C4G1
C5G1
C6G1
C7G1
C8G1
C9G1
C1G3
C2G3
$(“#弹出消息”)。对话框({
自动打开:错误,
莫代尔:是的,
标题:“选择类别”,
按钮:[{
文本:“OK”,
单击:函数(){
警报('Category='+$('#Category')。查找(':selected')。text();
$(this.dialog('close');
返回$('#category').val();
}
},
{
文本:“取消”,
单击:函数(){
$(this.dialog('close');
}
}
]
});
$('#opener')。在('单击',函数()上){
$('弹出消息')。对话框('打开');
});
$('popup#message')。在('dialogclose',function()上{
//$('category_popup option').attr('selected',false);
//$(“#类别(弹出窗口”)。触发器('reset');
$(“#类别”)。选择菜单(“刷新”);
//$(':输入','#类别(弹出窗口')。删除属性('选定');
//$('#类别弹出窗口').val([]);
truth=true;//此处允许断点
});
$(“#类别”)。选择菜单();
在执行以下操作之前,您需要更改索引:
$('#popup_message').on('dialogclose', function() {
// $('#category_popup option').attr('selected',false);
// $('#category_popup').trigger('reset');
var myselect = $("select#category");
myselect[0].selectedIndex = 0;
myselect.selectmenu("refresh");
// $(':input','#category_popup').removeAttr('selected');
// $('#category_popup').val([]);
truth = true; // to allow a breakpoint here
});
这就解决了。这就引出了一个问题:是否因为可能有多种选择,所以需要对其进行索引?感谢您快速而有益的回复