0

我设置了一个 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;}}
      ]
  });
4

1 回答 1

0

虽然不是一个完美的解决方案并且有点小技巧,但您可以存储下拉列表的选定索引和/或将其传递给您的对话框,然后在对话框关闭时将下拉列表设置为选定的索引,并可选择将焦点设置回下拉菜单。

于 2012-11-29T15:47:17.610 回答