2017-09-07 2 views
0

La méthode que j'ai écrite vérifie si la date a été insérée/changée dans le champ de saisie, et je veux que trig confirme le message à l'utilisateur lorsque cette condition est vraie. Le problème est que le message de confirmation est déclenché à chaque fois même si la date n'a pas changé. Ma méthode ressemble ci-dessous:Comment vérifier que le champ de saisie a changé dans jQuery

var alertuserSave = function() { 
     val4 = $("#ContentPlaceHolder1_txtFinalized").val(); 
     var alrt_value = document.createElement("INPUT"); 
     alrt_value.type = "hidden"; 
     alrt_value.name = "confirm_value"; 
     if ((val3 === "5" || val3 === "6") && val4) { 
     confirm("Remember to Save the inserted data."); 
     alrt_value.value = "Yes"; 
     } else { 
      alrt_value.value = "No"; 
     } 


     document.forms[0].appendChild(alrt_value); 
    } 

Et j'ajouté un auditeur sur le document charge comme ceci:

var val3 = $('#ContentPlaceHolder1_ddlResponsibility').val(); 
    var val4 = $("#ContentPlaceHolder1_txtFinalized").val(); 
    console.log(val4 + " is val4 ") 
    $(document).ready(function() { 
     $("#ContentPlaceHolder1_txtFinalized").change(alertuserSave); 

Comment faire la fenêtre pop-up a tiré que lorsque la date a changé et pas à chaque fois?

+1

Que devrait faire '&& val4'? –

+0

Vous pouvez utiliser les événements de mise au point et de flou sur votre champ de date. Vous pouvez stocker la valeur de la date sur le focus et ensuite dans votre fonction de flou, vérifiez si les chaînes finales et initiales sont identiques ou non. –

+0

@JonasSchafft Je suppose de vérifier que la valeur val4 n'a pas changé. – Mindan

Répondre

0
val4 = $("#ContentPlaceHolder1_txtFinalized").val(); 

renvoie la valeur de l'élément

donc si vous vérifiez:

(... && val4) 

il est toujours vrai

vous devez vérifier quelque chose comme:

val4 != oldvalue 
+0

Et comment obtenir l'ancienne valeur? J'ai essayé de sauvegarder l'ancienne valeur via var val4 = $ ("# ContentPlaceHolder1_txtFinalized"). Data ('val4', $ ("# ContentPlaceHolder1_txtFinalized") .val()); mais cela ne fonctionne pas, il affiche toujours la valeur actuelle – Mindan

+0

Faites juste val4! = $ ("# ContentPlaceHolder1_txtFinalized"). val(), puis faites le val4 = $ ("# ContentPlaceHolder1_txtFinalized"). val(); après le contrôle. –