Foro

Submit en formularo

0
Buenas, ando manejando esta librería hace unos días con la ayuda de este blog. El tema es que no he podido hacer funcionar un formulario de login. Mi código es el siguiente, es muy parecido al del tutorial: /* Empaquetando el codigo (include) */ Ext.ns('formulario'); formulario.FormTutorial = { init: function(){ /* El formulario en si */ this.form = new Ext.FormPanel({ /*title: 'Iniciar Sesion', /* Titulo de la "ventana"*/ width: 300, height: 150, border: false, /* Manejador del formulario */ standarSubmit: true, url: 'login.php', /* * */ renderTo: 'formularioSesion', /* Div que aloja el formulario */ defaults: { xtype: 'textfield'}, bodyStyle: 'padding: 10px; background-color: #c9ced9', items:[ {fieldLabel: 'Usuario', name: 'user', allowBlank: false}, {fieldLabel: 'Password', name: 'psswd', inputType: 'password', allowBlank: false} ], }); /* Ventana contenedora del formulario */ var win = new Ext.Window({ title: 'Iniciar Sesion', width: 300, height: 150, closable: false, bodyStyle: 'background-color: #fff;', items: this.form, buttonAlign: 'right', buttons: [{text: 'Entrar', handler: function(btn, evt){this.form.getForm().submit();}},{text: 'Borrar'}] }); win.show(); } }; Ext.onReady(formulario.FormTutorial.init,formulario); El problema es que al darle a "Entrar" la consola de JS me devuelve que el método getForm(), no está definido. Es un método de la librería o hay que hacerlo nosotros ? En mi html (ahora le cambie la extensión a .php) incluyo los siguientes archivos: Agradecería cualquier ayuda. Saludos,
0
Esa mero, no la recordaba porque yo nunca la uso jejejeje :-))
0
El problema es con el scope, ya que la función que ejecuta el handler del botón se está ejecutando en un contexto donde la propiedad "this.form" no está definida, lo que tienes que hacer definir la propiedad "scope:this" al botón para que la función se ejecute en el contexto donde si existe la propiedad "this.form". Saludos
0
Gracias Crysfel. Ya no arroja error. Pero aun asi no me dirige a login.php :-|
0
Y jamás lo hará porque lo que hace es simplemente hacer una petición Ajax, si quieres hacer un redireccionamiento tendrías que agregarle la propiedad: traditionalSubmit:true PD: revisa la documentación porque no recuerdo el nombre correcto de esa configuración O.o
0
sera standarSubmit: true, ? ahi busco
0
Amén, estaba escribiendo mal, no era "standarSubmit" era "standardSubmit" jeje la consla js no me devolvía errores :(.
0
yo tambien tengo un problema parecido , soy nuevo en esto lo que deseo es recuperar el valor del textfiield usuario en la pagina panel1.jsp la cual espero me puedan ayudar ---------------------------------------------------------------------------------------------------------------------------- Ext.ns('com.quizzpot.tutorial'); com.quizzpot.tutorial.FormTutorial = { init: function(){ var text = new Ext.form.TextField({fieldLabel: 'First Name', name: 'first', itemId: 'prueba', allowBlank:false}); var simple = new Ext.FormPanel({ labelWidth: 75, // label settings here cascade unless overridden //url:'save-form.php', frame:true, title: 'Simple Form', bodyStyle:'padding:5px 5px 0', width: 350, defaults: {width: 230}, defaultType: 'textfield', arrowAlign: 'center', items: [ text ,{ fieldLabel: 'password', name: 'pass' } ], buttons: [{ text: 'Save',handler:function(){ // window.location='panel1.jsp', alert(text.getValue()) if(simple.getForm().isValid()){ simple.submit({ url:'panel1.jsp', waitMsg:'validando', // method:'POST', success:function(form,action){ window.location='panel1.jsp' } }) } } },{ text: 'Cancel' }] }); simple.render('frame'); } } Ext.onReady(com.quizzpot.tutorial.FormTutorial.init,com.quizzpot.tutorial.FormTutorial); espero su ayuda

¿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.