I'm machen eine einfache entfernen-Link mit einem onClick-Ereignis, das einen Bestätigungsdialog aufruft. Ich möchte bestätigen, dass der Benutzer einen Eintrag löschen möchte. Allerdings scheint es, dass wenn Abbrechen im Dialog geklickt wird, die Standardaktion (d.h. der href-Link) noch stattfindet, so dass der Eintrag noch gelöscht wird. Nicht sicher, was ich hier falsch mache... Jeder Beitrag würde sehr geschätzt werden.
EDIT: Eigentlich, die Art und Weise der Code ist jetzt, die Seite doesn't sogar machen den Funktionsaufruf... so, kein Dialog kommt überhaupt. Ich habe den onClick-Code als:
onClick="confirm('Delete entry?')"
was zwar einen Dialog auslöste, aber immer noch zu dem Link bei Abbrechen führte.
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<script type="text/javascript">
function delete() {
return confirm('Delete entry?')
}
</script>
...
<tr>
<c:if test="${userIDRO}">
<td>
<a href="showSkill.htm?row=<c:out value="${skill.employeeSkillId}"/>" />
<img src="images/edit.GIF" ALT="Edit this skill." border="1"/></a>
</td>
<td>
<a href="showSkill.htm?row=<c:out value="${skill.employeeSkillId}&remove=1"/>" onClick="return delete()"/>
<img src="images/remove.GIF" ALT="Remove this skill." border="1"/></a>
</td>
</c:if>
</tr>
{{5433941}}
Ich benutze dies, funktioniert wie ein Charme. Keine Notwendigkeit, alle Funktionen, nur inline mit Ihrem Link (s) haben
onclick="javascript:return confirm('Are you sure you want to delete this comment?')"
Die Verwendung eines einfachen Links für eine Aktion wie das Entfernen eines Datensatzes erscheint mir gefährlich: Was ist, wenn ein Crawler versucht, Ihre Seiten zu indizieren? Er wird jedes Javascript ignorieren und jedem Link folgen, was wahrscheinlich nicht gut ist.
Sie sollten besser ein Formular mit method="POST" verwenden.
Und dann haben Sie ein Ereignis "OnSubmit", um genau das zu tun, was Sie wollen...
Zunächst einmal ist Löschen ein reserviertes Wort in Javascript, ich bin überrascht, dass dies sogar für Sie ausgeführt wird (Wenn ich es in Firefox teste, erhalte ich einen Syntaxfehler)
Zweitens sieht Ihr HTML seltsam aus - gibt es einen Grund, warum Sie die öffnenden Anker-Tags mit />
schließen, anstatt nur mit >
?