Pregunta

Estoy usando ASP.NET y JQuery/jQuery UI y estoy tratando de usar el control DatePicker. Funciona bien en cada página, excepto cuando tengo que usar la ventana emergente (para agregar nuevos datos a la base de datos y luego actualizo la página actual para reflejar los nuevos datos que se ingresan). Parece que document.ready () está fallando cuando uso la ventana emergente. Puedo invocar el control de DatePicker manualmente con agregar un evento de clic para disparar la función ShowCalendar, sin embargo, quiero intentar que funcione. ¿Alguien tiene alguna idea de por qué una ventana emergente fallaría document.ready ()?

¡Gracias!

Código en userInterfaces.js Script Archivo:

$(document).ready(function(){

$(".calendarTrigger").datepicker({showOn:'focus', showAnim: 'fadeIn', changeMonth: true, showOn:'both', buttonImage: '/images/calendar.gif', buttonImageOnly: true, changeYear: true, yearRange: '1950:2010'});

});

Funcionalidad emergente de llamadas de código:

<a href="#" onclick='javascript:openWindow("/modules/prh/AI.aspx","PH","480","650","","");'

Código para ventana emergente modal que usamos:

function openWindow(url,name,height,width,left,top)
{
if(!width) {width = 625};
if(!height){height = 625}; 
if(!left) {left = 60};
if(!top){top = 60};    
if (!name) {name='mk'};

name = name.replace(" ","");

if ((window.showModalDialog) && (navigator.appName!="Microsoft Internet Explorer"))
{
        grayOut(true);

        newWindow = window.showModalDialog(url,"name","dialogWidth: " + width + "px;dialogHeight:  " + height + "px;resizable: 1;status: 0;scrollbars: 1;dialogLeft: " + left +"px;dialogTop: " + top + "px");

        if (newWindow)
            newWindow.focus();

        grayOut(false);

}
else
{
    newWindow = window.open(url,name,'width=' + width + ',height='+ height + 
    ',resizable=1,status=0,scrollbars=1,left=' + left +',top=' + top);

    if (newWindow)
        newWindow.focus();
    else 
        window.Name.focus();

 }
}

function grayOut(vis, options) {
// Pass true to gray out screen, false to ungray
// options are optional.  This is a JSON object with the following (optional) properties
// opacity:0-100         // Lower number = less grayout higher = more of a blackout 
// zindex: #             // HTML elements with a higher zindex appear on top of the gray out
// bgcolor: (#xxxxxx)    // Standard RGB Hex color code
// grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
// Because options is JSON opacity/zindex/bgcolor are all optional and can appear
// in any order.  Pass only the properties you need to set.
var options = options || {}; 
var zindex = options.zindex || 50;
var opacity = options.opacity || 70;
var opaque = (opacity / 100);
var bgcolor = options.bgcolor || '#000000';
var dark=document.getElementById('darkenScreenObject');
    var tbody = document.getElementsByTagName("body")[0];
if (!dark) 
{
    // The dark layer doesn't exist, it's never been created.  So we'll
    // create it here and apply some basic styles.
    // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917
    var tnode = document.createElement('div');           // Create the layer.
    tnode.style.position='absolute';                 // Position absolutely
    tnode.style.top='0px';                           // In the top
    tnode.style.left='0px';                          // Left corner of the page
    tnode.style.overflow='hidden';                   // Try to avoid making scroll bars            
    tnode.style.display='none';                      // Start out Hidden
    tnode.id='darkenScreenObject';                   // Name it so we can find it later
    tbody.appendChild(tnode);                            // Add it to the web page
    dark=document.getElementById('darkenScreenObject');  // Get the object.
}


if (vis) 
{
    var pageWidth="100%";
    var pageHeight=getPageHeightWithScroll();
if (window.innerHeight>pageHeight)
    pageHeight = window.innerHeight;
pageHeight = pageHeight + "px";

    //set the shader to cover the entire page and make it visible.
    dark.style.opacity=opaque;                      
    dark.style.MozOpacity=opaque;                   
    dark.style.filter='alpha(opacity='+opacity+')'; 
    dark.style.zIndex=zindex;        
    dark.style.backgroundColor=bgcolor;  
    dark.style.width= pageWidth;
    dark.style.height= pageHeight;
    dark.style.display='block';                          
} 
else 
{
    dark.style.display='none';
}
}
¿Fue útil?

Solución

¿Cuál es el marcado para su ventana emergente y tiene algún otro JavaScript que pueda causar un error antes de que DatePicker se dispare dentro de la ventana emergente?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top