ASP.NET,jQuery UI对话框在页面中显示1-2秒

我有一个ASP.NET页面,我将检查用户是否已登录到系统(通过检查会话值)页面加载,如果没有登录,它将显示登录的jQueryUI对话框。

我的ASPX页面在head标签中包含这些脚本

 body { font-size: 62.5%; } label, input { display:block; } input.text { margin-bottom:12px; width:95%; padding: .4em; } fieldset { padding:0; border:0; margin-top:25px; } h1 { font-size: 1.2em; margin: .6em 0; } div#users-contain { width: 350px; margin: 20px 0; } div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; } div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; } .ui-button { outline: 0; margin:0; padding: .4em 1em .5em; text-decoration:none; !important; cursor:pointer; position: relative; text-align: center; } .ui-dialog .ui-state-highlight, .ui-dialog .ui-state-error { padding: .3em; }   $(function() { var name = $("#name"), email = $("#email"), password = $("#password"), allFields = $([]).add(name).add(email).add(password), tips = $("#validateTips"); function updateTips(t) { tips.text(t).effect("highlight",{},1500); } function checkRegexp(o,regexp,n) { if ( !( regexp.test( o.val() ) ) ) { o.addClass('ui-state-error'); updateTips(n); return false; } else { return true; } } $("#dialog").dialog({ bgiframe: true, autoOpen: false, height: 250, modal: true, buttons: { Cancel: function() { $(this).dialog('close'); }, NewUser: function() { $(this).dialog('close'); window.location.href="Register.aspx"; }, 'Sign in': function() { var bValid = true; allFields.removeClass('ui-state-error'); bValid=true; isValidationFails=false; if (bValid) { // Go to another page } } } }, close: function() { allFields.val('').removeClass('ui-state-error'); } }); $('#create-user').click(function() { $(this).dialog('close'); window.location.href="Register.aspx" }) .hover( function(){ $(this).addClass("ui-state-hover"); }, function(){ $(this).removeClass("ui-state-hover"); } ).mousedown(function(){ $(this).addClass("ui-state-active"); }) .mouseup(function(){ $(this).removeClass("ui-state-active"); }); //}); var isAuthenticated = $("#isAuthenticated").val(); if (isAuthenticated && isAuthenticated == "false") { $("#dialog").dialog("open"); } 

});

  

SErver边码(在Page_Load中)

  if (Session["trCustomerId"] != null) { Response.Write("Logged in user"); ClientScript.RegisterHiddenField("isAuthenticated", "true"); } else { ClientScript.RegisterHiddenField("isAuthenticated", "false"); } 

该计划现在正常运作。 但问题是当页面加载时,它在屏幕上显示UIDialog div 1-2秒然后消失。 我不想这样表现出来。任何人都可以告诉我如何解决这个问题?

尝试在对话框标记上设置样式以显示:none;

 #dialog{ display: none; } 

然后,如果dialog.open没有为您执行此操作,则可以显示它。

 $('#dialog').show() 

试试这个,在html代码中输入style =“display:none;” 对于#dialog浏览器首先加载html