如何在jQuery UI弹出窗口

时间:2015-05-28 04:17:25

标签: javascript jquery asp.net

弹出窗口中有2个按钮(确定和取消)。我想禁用"取消"按钮,弹出窗口时只需要OK按钮。我在页面上使用了会话时间,只需要按下确定按钮即可弹出。

 <script src="jquery/js/jquery-1.8.3.js" type="text/javascript"></script>   

<script type="text/javascript">

var sess_pollInterval = 60000;
var sess_expirationMinutes = 3;
var sess_warningMinutes = 1;
var sess_intervalID;
var sess_lastActivity;

function initSession()
{    
    sess_lastActivity = new Date();
    sessSetInterval();

    $(document).bind('keypress.session', function (ed, e) {


        sessKeyPressed(ed, e);
    });
}

function sessSetInterval() 
{
    sess_intervalID = setInterval('sessInterval()', sess_pollInterval);
}

function sessClearInterval() 
{
    clearInterval(sess_intervalID);
}

function sessKeyPressed(ed, e) 
{
    sess_lastActivity = new Date();
}

function sessLogOut() 
{
    window.location.href = 'Logout.aspx';
}

function sessInterval()
{
    var now = new Date();
    //get milliseconds of differneces 
    var diff = now - sess_lastActivity;
    //get minutes between differences
    var diffMins = (diff / 1000 / 60);

    if (diffMins >= sess_warningMinutes)
    {
        //wran before expiring
        //stop the timer
        sessClearInterval();
        //promt for attention
   var active = confirm('Your session will expire in ' + (sess_expirationMinutes - sess_warningMinutes) +
            ' minutes (as of ' + now.toTimeString() + '), press OK to remain logged in ' +
                        'or press Cancel to log off. \nIf you are logged off any changes will be lost.');

        if (active == true)
        {
            now = new Date();
            diff = now - sess_lastActivity;
            diffMins = (diff / 1000 / 60);

            if (diffMins > sess_expirationMinutes)
            {
                sessLogOut();
            }
            else
            {
                initSession();
                sessSetInterval();
                sess_lastActivity = new Date();
            }
        }
        else
        {
            sessLogOut();
        }
    }
}
</script>

我也尝试了这个:

$(".ui-dialog-buttonpane button:contains('Cancel')").attr("disabled", true).addClass("ui-state-disabled");

HTML code:

 <body onload="initSession()" >

<form id="form1" runat="server">
<div>

</div>
</form>
 </body>

1 个答案:

答案 0 :(得分:1)

无法在标准confirm对话框中取消按钮,您需要使用自定义布局。

最简单的可能是使用JqueryUI和禁用按钮选项:

 $('<div></div>').dialog({
      title: "Your session will expire in " + 10 + " minutes ... TODO ",
      modal: true,
      buttons: [
          {
              id: 'confirm-ok',
              text: 'OK',
              click: function() {
                  alert("OK clicked");
              }
          }, {
               id: 'confirm-cancel',
               text: 'Cancel',
               click: function() {
                   alert("Cancel clicked");
              }
          }]
    });


if (true) { // <-- some custom logic
    $("#confirm-cancel").button("disable");
}

这是dummy sample