我有一个JQuery下拉菜单设置,以便在进行特定选择时,会显示一个确认对话框(也是JQuery),其中包含注释字段和是/否按钮。我希望用户能够在此确认窗口中输入文本并单击是或否,而后台下拉菜单的状态保持不变。
不幸的是,只要我点击确认窗口中的任意位置,后台下拉菜单的状态就会丢失 - 它会回到默认状态。有一些简单的选择来处理这个?制作模态没有任何影响。
以下是我的确认窗口定义:
$(".change_status").Confirmation({
header: "#{t.global.conf_header}",
onload: function(){
$("#newSync > .date_chooser").each( function(index, element){
var minDate = new Date().addDays("#{medsync_post_offset}");
var maxDate = new Date().addDays(100);
calenderize(element, $(this).next(), null, minDate, maxDate);
});
},
message: function(){
if ($(this).html()=="#{t.medsync.resume}"){
$("#activate").show();
return $("#activate").html();
}
if ($(this).html()=="#{t.medsync.hold}"){
$("#hold").show();
return $("#hold").html();
}
if ($(this).html()=="#{t.medsync.remove}"){
$("#activate").show();
return $("#remove").html();
}
},
buttons:
[
{text:"#{t.global.button_yes}", label: "Yes_btn", action: function(e)
{
//if ($(this).html()=="#{t.medsync.hold}" && $.trim($("input:text.comment:visible").val()).length < 1)
if($("input.required:visible").size() > 0 && $.trim($("input.required:visible").val()) == "")
{
e.stopImmediatePropagation();
$("input.required:visible").css("border","2px solid red").focus();
}
else
{
if ($(".required input:text:visible").size()>0 && $.trim($(".required input:text:visible").val()) == "")
{
//e.stopImmediatePropagation();
$(".required input:text:visible").css("border","2px solid red !important;").focus();
}
else
{
$.post($(this).attr("href"), $("form#sync_form").serialize()+"&"+$("form.status:visible").serialize(), function(response)
{
if (response=="OK") { window.location.reload(true);}
});
}
}
}},
{text:"#{t.global.button_no}", label: 'No_btn', action: function(){return false;}}
]
});
答案 0 :(得分:0)
虽然不是一个完美的解决方案和一点点黑客,但您可以存储下拉列表的选定索引和/或将其传递给对话框,然后在对话框关闭时将下拉列表设置为所选索引,并可选择设置重点关注下拉列表。