Foro

problemas con submit formularios con explorer

0
Tengo un formulario de acceso a una aplicación, mi problema es que con firefox funciona perfectamente pero no he conseguido que funcione con explorer, el código es el siguiente: Ext.getCmp('formularioLogin').getForm().submit({ waitMsg : 'Accediendo a datos...', failure : function (form,action){ Ext.MessageBox.show({ title: 'Error.', msg: 'Error de acceso a la aplicación', buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.ERROR }); }, success: function (form,action){ Ext.MessageBox.show({ title: 'Bienvenido', msg: 'Acceso correcto a la aplicación', buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.INFO }); var redirect = "Principal1.php"; window.location = redirect; } }); } No sé cuál puede ser el problema con explorer, agradeceré un poco de ayuda en este tema. Gracias
0
Has probado con document.location en lugar de window.location?
0
te dejo el codigo que yo uso y me ha servido en cualquier navegador, comparando talvez descubras porque no funciona en IE el tuyo, ojo que IE no perdona ni una coma sobrante, en cambio FF es mas indulgente
Ext.ns('app');
Ext.BLANK_IMAGE_URL = '../extjs/resources/images/default/s.gif';
Ext.QuickTips.init();
app.login = {
	init:function(){
		var textUsuario = new Ext.form.TextField({
			fieldLabel:'Usuario',
			id:'txtlogin',
			name:'loginUsername',
			allowBlank:false,
			autoCreate: {tag: "input", type: "text", autocomplete: "off", maxlength: 8 },
			listeners : {
				specialkey : function(field, e) {
					if (e.getKey() == e.ENTER){
						Ext.getCmp('txtpass').focus(true);
					}
				}
			}
		});
		
		var textPassword = new Ext.form.TextField({
			fieldLabel : 'Contraseña',
			id : 'txtpass',
			name : 'loginPassword',
			inputType : 'password',
			allowBlank : false,
			autoCreate : {tag : "input", type : "text", autocomplete : "off", maxlength : 8 },
			listeners : {
				specialkey : function(field, e) {
					if (e.getKey() == e.ENTER){
						Ext.getCmp('login').focus(true);
					}
				}
			}
		});
  
		var form = new Ext.FormPanel({
			id : 'formlogin',
			baseCls : 'x-plain',
			frame : true,
			autoScroll : false,
			bodyStyle : 'padding:10px;',
			url : 'php/login.php',
			title : 'Por favor, identifíquese',
			items : [{
				xtype:'fieldset',
				title:'Usuario / Contraseña',
				autoWidth:true,
				labelWidth: 90,
				autoHeight:true, 
				defaultType: 'textfield', 
				items:[textUsuario,textPassword]
			}],
      buttons:[{
        text:'Login',
	id : 'login',
        formBind: true,
        handler:function(){
          form.getForm().submit({
		method:'POST',
		waitTitle:'Conectando',
		waitMsg:'Enviando datos...',
		success:function(){
			win.hide();
			Ext.Msg.wait('Cargando escritorio... por favor espere!');
			window.setTimeout(function(){
			Ext.Msg.hide();
			var redirect = 'desktop.php';
			window.location = redirect;
		},1000);
	},
	failure:function(form, action){
		if(action.failureType == 'server'){
			respuesta = Ext.util.JSON.decode(action.response.responseText);
			Ext.MessageBox.show({
				title : 'ERROR',
				msg : respuesta.errors.razon,
				icon : Ext.MessageBox.ERROR,
				buttons : Ext.MessageBox.OK
			});
		}else{
			Ext.Msg.alert('¡Atención!', 'Fallo de conexión con el servidor de autenticación: ' + action.response.responseText);
		}
		var login = Ext.getCmp('formlogin');
		form.reset();
		Ext.getCmp('txtlogin').focus(true,500);
	}
});
}
}]
});
	
    var win = new Ext.Window({
	id:'winlogin',
	layout:'fit',
	width:340,
	height:180,
        closable: false,
        resizable: false,
        plain: true,
        border: false,
	modal:true,
        items: [form],
	listeners : {
		afterrender : function(){
			Ext.getCmp('txtlogin').focus(true,500);
		}
	}
});
        win.show();
}
}	
Ext.onReady(app.login.init,app.login);
0
Muchas gracias por la ayuda. El problema efectivamente es una cuestión de comas en el código. El firefox no le importa demasiado si se finaliza los elementos de un array con coma o no. El IE es mucho más estricto. Gracias
0
No es que sea estricto, es que no ha implementado corractamente los estándares <!-- s;) --><!-- s;) --> Slaudos
0
¡Hola que tal! Yo también he estado teniendo problemas con el internet Explorer 9, resulta que mis logueos no funcionan si uso atributos como waitTitle o waitMsg al enviar la forma, ya que se despliega como una ventana con el texto del wait y botones 'OK', 'Yes', 'No' y 'Cancel', aún si coloco un Ext.Msg.hide() en el success, no funciona. Cabe aclarar que en los demás navegadores todo funciona de maravilla y que antes de mencionada versión no había este detalle. Asi que no me quedó más remedio que comentar esas lineas .___. P.D. Copié el código de Tokkaido, y la consola de Chrome me marca el siguiente error: Uncaught SyntaxError: Unexpected token <, ext-all.js:7

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.