web-dev-qa-db-de.com

Ist es sicher, Anker zum Senden des Formulars zu verwenden?

Ich habe irgendwo gelesen, dass die Verwendung eines Ankertags zum Senden eines Formulars nicht sehr sicher ist. Daher ist meine Frage: Ist es sicher, den Ankertag anstelle von <button> oder <input type="submit" /> zum Senden eines Formulars zu verwenden? Und wenn nicht, warum ? Das Problem ist, dass ich eine CSS-Klasse für eine Schaltfläche habe, die zeigt, was ich über <a class="button"> möchte, aber wenn ich sie zu einer tatsächlichen Schaltfläche hinzufüge, fügt sie eine seltsame Grenze hinzu, die ich nicht möchte.

Vielen Dank

28
ItsGreg

Um einen Anker zum Senden eines Formulars zu verwenden, müssen Sie zum Anschließen der Ereignisse JavaScript verwenden. Es ist nicht sicher, dass das Formular nicht gesendet werden kann, wenn ein Benutzer JavaScript deaktiviert hat. Zum Beispiel:

<form id="form1" action="" method="post">
    <a href="#" onclick="document.getElementById('form1').submit();">Submit!</a>
</form>

Wenn Sie möchten, können Sie einen <button> verwenden:

<button type="submit">Submit!</button>

Oder bleib bei dem, was wir alle wissen:

<input type="submit" value="Submit!" />

Sie können alle drei gestalten, aber die letzten beiden benötigen kein JavaScript. Sie müssen wahrscheinlich nur ein paar CSS-Werte ändern, wenn Sie Probleme mit der Grenze haben.

55
Cᴏʀʏ
<!-- add the anchor token at the end of your action statement -->

<form method='post' action='this_page.php?put_peram=token#anchor_name'>
<input type='submit' value='click here'>

<!-- put the anchor right above where you want the page to  index -->

<a name="anchor_name></a>
2
joshua bissot

Versuchen Sie, Javascript für die Aktion zu vermeiden. Verwenden Sie immer die Schaltfläche zum Senden. Einige Benutzer können Javascript aus Sicherheitsgründen deaktiviert haben. 

Obwohl Sie JavaScript zum Senden des Werts verwenden möchten, fügen Sie vor dem Schreiben des<html>-Tags die folgende Zeile hinzu. 

<!-- saved from url=(0014)about:internet--> <html>

1
user3738184