2016-07-27 9 views
3

aufrufen JavaScript-Funktion auf Lösch OnclintClick Ereignis wird uns die Nachricht Bestätigungstaste Yes zurückkehrt, wenn OK geklickt.Wie schränken Sie eine Append-Zeichenfolge in JavaScript ein?

Das Problem ist, wenn ein zweites Mal angeklickt, wird es die nächste String anhängen.

ex: Yes, Yes

JavaScript

function Confirm() { 

    var confirm_value 

    confirm_value = document.createElement("INPUT"); 
    confirm_value.type = "hidden"; 
    confirm_value.name = "confirm_value"; 

    if (confirm("Are you sure want to delete supplier?")) { 
     confirm_value.value = "Yes"; 
    } 

    else { 
     confirm_value.value = "No"; 
    } 

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

Erklärung

Die JavaScript-Methode speichern Bestätigen Sie die Eingabe durch den Benutzer in einem dynamisch erstellten versteckten Feld dh zur Verfügung gestellt wenn OK gedrückt wird der Wert gespeichert wird, und wenn YesCancel gedrückt wird, es wird die No Wert gespeichert werden, so dass es die Benutzereingaben auf Server-Seite Code passieren kann.

dann wird es ermöglichen, die Taste normales Postback zu tun und erhöht das OnClick Ereignis.

Frage

Wie konnte das Anfügen darauf beschränkt sein?

+1

Könnten Sie bitte einen kurzen Schnipsel erstellen? Weil ich verstehe dein Problem nicht, so wäre es einfacher sein;) thx –

+1

sollten Sie zunächst prüfen, ob die Eingabe bereits vorhanden ist, und wenn es den Wert nur bearbeiten ist stattdessen ein neues Element hinzuzufügen. – Adjit

+0

Sorry @ R.Foubert für machte es nicht klar. Ich rufe eine JavaScript-Funktion für das Löschen mit dem Ereignis '' OnclinClick''' auf. Wenn ich den Code hinter dem Löschen-Button angeklickt habe, gibt es mir die Bestätigungsbox-Nachricht und wenn ich auf ok klicke, wird '' '' '' '' wie gewöhnlich angezeigt. Aber wenn ich Ok zum zweiten Mal klicke, wird die Saite angehängt, wie zum Beispiel: '' 'Yes, Yes'''. Meine Frage ist, wie kann ich beschränken, um es anzuhängen? –

Antwort

2

Geben Sie das Elemente eine ID, und prüfen, ob die ID das nächste Mal

function Confirm() { 

    var id = "confirm_value", 
     confirm_value = document.getElementById("confirm_value"); 

    if (!confirm_value) { 
     confirm_value = document.createElement("input"); 
     confirm_value.type = "hidden"; 
     confirm_value.name = id; 
     confirm_value.id = id; 

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

    confirm_value.value = confirm("Are you sure want to delete supplier?") ? "Yes" : "No"; 
} 
1

Der beste Weg wäre, ein boolesches Flag zu setzen, das auf true gesetzt wird, nachdem Sie den Wert zum ersten Mal gesetzt haben.

var yourBoolean = false; 
if (confirm("Are you sure want to delete supplier?")) { 
     yourBoolean = true; 
    if (yourBoolean === true) { 
     confirm_value.value = "Yes"; 
     } 
    }