focus en un textfield
Como puedo poner el focus en un textfield
Elapas.Login=function() { var login_form, win, userField, pwField; function disableFields(which) { if(which==true) { userField.setDisabled(true); pwField.setDisabled(true); } else { userField.setDisabled(false); pwField.setDisabled(false); } } function checkLogin() { win.setDisabled(true); login_form.getForm().submit({ success: function(form, response) { self.location.href = "index.php?lang=Espanol" }, failure: function(form, response){ Ext.Msg.show({title: "Error", msg: "Datos incorrectos, Por favor verifique", buttons: Ext.Msg.OK, icon: Ext.Msg.ERROR }); win.setDisabled(false); } }); } userField = new Ext.form.TextField({ fieldLabel: "Usuario", name: "username", style: "margin:0px 0px 0px 0px;", labelStyle: "margin: 0px 0px 0px 0px;" }); pwField = new Ext.form.TextField({ fieldLabel: "Contraseña", name: "password", inputType: "password", style: "margin:0px 0px 0px 0px;", labelStyle: "margin: 0px 0px 0px 0px;" }); login_form = new Ext.FormPanel({ frame: true, url: "./php/Login.php", buttonAlign: "right", items: [ userField, pwField //langCombo ], keys:({ key: Ext.EventObject.ENTER , fn: checkLogin, scope: this }) }); win = new Ext.Window({ renderTo: "login", title: "Ventana de Ingreso", layout:"fit", draggable:false, closable:false, resizable:false, width: 280, height: 130, items: [login_form], buttons: [ { xtype: "tbbutton", text: "Ingresar", minWidth:80, minHeight:50, handler: function() { checkLogin(); }, icon: "./images/ok.png", cls: "x-btn-text-icon" }, { xtype: "tbbutton", text: "Cerrar", minWidth:80, minHeight:50, handler: function() { win.close(); Ext.MessageBox.alert("Salio del Sistema", "Gracias por visitar el Sistema de Tramites de Elapas"); }, icon: "./images/close16.png", cls: "x-btn-text-icon" }] }); win.show(); };Quisiera que el focus este en el textfield username gracias a todos
[color=#0000BF]Hola, soy nuevo xD! no se si será la mejor opción pero te doy mi solución:
Lo que está en rojo es lo que pondría.
userField = new Ext.form.TextField({ fieldLabel: "Usuario", name: "username", id: "u", style: "margin:0px 0px 0px 0px;", labelStyle: "margin: 0px 0px 0px 0px;" }); Ext.get('u').focus();Saludos cordiales, William Campos[/color]
prueba con el método "focus" que te comenta akagami
userField.focus(); //así te debería funcionarLo que no estoy seguro es si forzosamente tienes que asignarle el focus despues de renderearlo si se puede hacer antes, sería cosa de que probaras y luego nos cuentas. saludos
lo probe antes de crear el formulario, lo probe despues de crear el formulario, antes de crear la ventana, despues de crear la ventana, despues de crear el textfield u aun no puedo hacerlo funcionar
Problema resuelto
para empezar el texfield al que queremos poner el focus obligadamente tiene que tener un id
luego se pone:
Ext.getCmp('id').focus(true);
y si asi no sale es que todo carga muy rapido hay que darle algo de tiempo
setTimeout(function(){Ext.getCmp('id').focus(true); }, 500);
gracias a los que aportaron
Saludos
Hola a todos,
Sólo apuntar que si se usa la versión 2.2 o la 3, el retardo en milisegundos puede ponerse como segundo parámetro del método focus.
Ext.getCmp('id').focus(true,500);
@jucahoca
si funciona muchas gracias
@stock
no entiendo lo q me explicas stock, seria mucho pedir si me pudieras dar un ejemplo con codigo por favor
//creas el texfield var textfield = new Ext.form.TextField({}); //aqui le das el texfield al form y todo lo que encesites mas var form = new Ext.FormPanel(.........); //agregas el listener form.on('render',function(){ textfield.focus(); //gracias a los "closures" puedes hacer esto ;) });Así esperas a que se renderize y luego puedes asignarle el focus tranquilamente, saludos
¿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.