2009-08-03 6 views
0

J'utilise le plugin jqGrid et je veux ajouter l'événement onKeyPress à chaque champ du formulaire d'édition.Ajouter un événement javascript à jqGrid

Ce code fonctionne pour IE8, mais échoue dans FF et 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 }} 

Comment modifier cela pour le faire fonctionner dans IE7 et FF? Merci.

+0

Avez-vous une erreur? pouvez-vous mettre dans un console.log à l'intérieur de la fonction pour voir si elle est appelée. Avez-vous une URL de démonstration? – redsquare

+0

Je ne reçois aucune erreur. Et malheureusement pas d'URL. Je le teste sur une machine locale. – Sorantis

+0

bien essayer le console.log ou une déclaration de débogueur dans la fonction KeyUp pour voir si l'événement est appelé. Pouvez-vous utiliser firebug pour voir si l'événement est ajouté à la boîte d'entrée aussi – redsquare

Répondre

2

Trouvé la solution! Afin d'affecter un événement à un champ, je dois ajouter les options suivantes à l'édition:

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

Félicitations à karim79 pour avoir repéré le problème.

En outre, vous utiliserez une fonction plutôt qu'une chaîne implicite en tant que fonction. Facile à lire/maintenir.

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(); 
} 

} 
+0

non, malheureusement cela n'a pas aidé – Sorantis

Questions connexes