Pregunta

Estoy usando el complemento jqGrid y quiero agregar el evento onKeyPress a cada campo del formulario de edición.

Este código funciona para IE8, pero falla en FF e IE7

 {name: 'name', index: 'name', width: 200, editable: true, 
     sortable: false, search: true, editoptions: { readonly: false, size: 32, 
     'onKeyPress': 'if($("#cbLanguage").attr("checked"))togeo();' }, 
     editrules: { required: true }}

¿Cómo modificar esto para que funcione en IE7 y FF? Gracias.

¿Fue útil?

Solución

¡Encontré la solución! Para asignar un evento al campo, necesito agregar lo siguiente a las opciones de edición:

dataEvents:[{type:'keypress', fn: function(e) {
if($("#cbLanguage").attr("checked"))togeo(); }}]

Otros consejos

Felicitaciones a karim79 por detectar el problema del evento.

Además, será mejor utilizar una función en lugar de una cadena implícita como función. Fácil de leer / mantener.

name: 'name', index: 'name', width: 200, editable: true, 
     sortable: false, search: true, editoptions: { readonly: false, size: 32, 
     'onKeyUp': keyUpFn }, 
     editrules: { required: true }}



function keyUpFn (){

 $("#cbLanguage").is(':checked') ){
   togeo();
 }

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