2017-09-07 3 views
0

Die von mir geschriebene Methode prüft, ob das Datum in das Eingabefeld eingefügt/geändert wurde, und ich möchte die Meldung an den Benutzer bestätigen, wenn diese Bedingung zutrifft. Das Problem, dass die Bestätigungsmeldung jedes Mal ausgelöst wird, auch wenn das Datum nicht geändert wurde. Meine Methode sieht wie folgt:So überprüfen Sie, ob sich das Eingabefeld in jQuery geändert hat

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

Und ich habe dieses Bild einen Zuhörer auf Dokument Last wie:

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

Wie das Pop-up nur gefeuert zu machen, wenn das Datum geändert hat und nicht jedes Mal?

+1

Was sollte '&& val4' tun? –

+0

Sie können Fokus- und Blur-Events in Ihrem Datumsfeld verwenden. Sie können den Wert des Datums im Fokus speichern und dann können Sie in der Blur-Funktion prüfen, ob die finalen und initialen Strings gleich sind oder nicht und die Funktion auslösen, wenn das Datum unterschiedlich ist:) –

+0

@JonasSchafft Ich vermute, dass val4 Wert sich nicht geändert hat. – Mindan

Antwort

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

gibt den Wert des Elements

so, wenn Sie überprüfen:

(... && val4) 

es ist immer wahr

Sie so etwas wie überprüfen müssen:

val4 != oldvalue 

+0

Und wie bekommt man den alten Wert? Ich habe versucht, den alten Wert über var val4 = $ zu speichern ("# ContentPlaceHolder1_txtFinalized"). Data ('val4', $ ("# ContentPlaceHolder1_txtFinalized"). Val()); aber das funktioniert nicht, es druckt immer den aktuellen Wert aus – Mindan

+0

Tun Sie einfach val4! = $ ("# ContentPlaceHolder1_txtFinalized"). val() und machen Sie dann val4 = $ ("# ContentPlaceHolder1_txtFinalized"). val(); nach dem Scheck. –

Verwandte Themen