jqGrid – Confirmation du mot de passe

Je veux faire une chose simple: je veux comparer les données de deux champs lors de la saisie. Je veux dire: l’utilisateur remplira un champ avec son mot de passe et il y aura un autre champ lui demandant de remplir à nouveau son mot de passe. Je souhaite comparer ces deux données pour voir si elles correspondent. Mon problème est que je ne sais pas comment extraire les données du champ de confirmation pour les comparer. La partie pertinente du code est ici (confirmaSenha est le champ de confirmation):

{name:'senha', width:80, sortable:true, editable: true, hidden:true, edittype:'password', editrules:{edithidden:true, required:true, custom:true, custom_func:validaSenha}}, {name:'confirmaSenha', width:80, sortable:true, editable: true, hidden:true, edittype:'password', editrules:{edithidden:true, required:true}}, function validaSenha(value, colname){ if (colname=='senha' && value == HOW_DO_I_GET_DATA_FROM_CONFIRMATION_FIELD?) { return [true, ""]; } else { return [false, ""]; } } 

ÉDITÉ

 if ((colname == 'senha') && (value == $('#tr_confirmaSenha').val())) { alert('true'); return [true, ""]; } else { var senha = $("#tr_confirmaSenha").val(); alert(senha); $("td.editmsg", 'FrmGrid_grid').html("Senhas diferentes."); return [false, ""]; } } 

Merci d’avance.

Selon le premier message dans la section discussion de http://www.sortingrand.com/jqgridwiki/doku.php?id=wiki:common_rules

Vous pouvez référencer les zones de saisie réelles par leur nom. Dans son exemple, il fait référence à l’entrée dans l’option dataevents de editOptions, mais vous devriez pouvoir faire de même dans votre validateur personnalisé, je pense.

 editoptions: { size: 1, dataUrl: 'Includes/tblJobSelect.php', dataEvents: [ { type: 'change', fn: function(e) { $('input#Job_Number').val(this.value); } } ] }, 

ici

  $('input#Job_Number') 

fait référence au type d’entrée modifiable pour une colonne nommée numéro_travail

Dans votre exemple, vous devriez pouvoir référencer confirmaSenha en tant que

  $('input#confirmaSenha') 

Essayez d’utiliser Firebug ou quelque chose de similaire pour voir quel est l’identifiant de l’élément d’entrée. Vous pouvez également envisager ce qui se passe si plusieurs lignes sont modifiables. Si plusieurs lignes sont modifiables en même temps, ce sélecteur

  $('input#confirmaSenha') 

vous donnerait plus d’éléments que je pense que vous attendez. Une meilleure option consiste à référencer directement la ligne en question, mais malheureusement, il est difficile de le faire dans cette situation car vous n’avez pas de référence à l’entrée de validation ou à sa ligne via la fonction de validation personnalisée. Si cela vous pose problème, vous devez envisager de désactiver les modifications de plusieurs lignes à la fois ou de trouver un moyen de déterminer la ligne sur laquelle l’entrée existe.