Templates y Temas para ExtJS y Sencha Touch Bleext!
Bleextop! un desktop OpenSource para Ext4 y CodeIgniter http://bit.ly/pUwLJO
problemas con submit formularios con explorer
  • Vote Up0Vote Down juanitojuanito October 2010
    Posts: 13
    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
  • 5 Answers sorted by
  • Vote Up0Vote Down jucahocajucahoca October 2010
    Posts: 80
    Has probado con document.location en lugar de window.location?
  • Vote Up0Vote Down tokkaidotokkaido October 2010
    Posts: 376
    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);
  • Vote Up0Vote Down juanitojuanito October 2010
    Posts: 13
    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
  • Vote Up0Vote Down CrysfelCrysfel October 2010
    Posts: 881
    No es que sea estricto, es que no ha implementado corractamente los estándares ;)

    Slaudos
  • Vote Up0Vote Down AidaAida January 12
    Posts: 3
    ¡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

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook Sign In with Twitter

Sign In Apply for Membership

In this Discussion

Poll

No poll attached to this discussion.