Wenn ein Benutzer etwas Text in mein Formular einfügt und auf die Schaltfläche klickt, möchte ich das Formular ausblenden und eine "Danke" -Nachricht an den Benutzer senden, um sie wissen zu lassen, dass ich ihren Text erhalten habe .HTML5-Eingabeformular erscheint nach Senden und Ausblenden
Dies ist übrigens für das Einbetten in ein Chrome-Erweiterungspopup.
Hier ist, was ich habe:
<!doctype html>
<html>
<head>
<title>Extension</title>
<style>
body {
min-width:200px;
min-height:75px;
overflow-x:hidden;
}
img {
margin:5px;
border:2px solid black;
vertical-align:middle;
width:75px;
height:75px;
}
.visible{
display:block;
}
.invisible{
display: none;
}
</style>
<script>
var PopupController = function() {
this.button_ = document.getElementById('button');
this.form_ = document.getElementById('userIdForm');
this.userId_ = document.getElementsByName('userID')[0];
this.submitThanks_ = document.getElementById('submitThanks');
this.addListeners_();
};
PopupController.prototype = {
button_: null,
form_: null,
userId_: null,
submitThanks_: null,
addListeners_: function() {
this.button_.addEventListener('click', this.handleClick_.bind(this));
},
handleClick_: function() {
console.log("Submit button clicked");
var userId = this.userId_.value;
// Hide the form
this.form_.classList.add('invisible');
this.submitThanks_.classList.remove('invisible');
}
};
</script>
</head>
<body onload="window.controller = new PopupController()">
<h2 class="invisible" id="submitThanks">Thanks!</h2>
<div id="userIdForm">
<form>
<input type="text" name="userID" placeholder="User ID" required/>
<button id="button" type="submit">Submit</button>
</form>
</div>
</body>
</html>
Das Problem ist, dass das Formular erneut angezeigt, nachdem die Schaltfläche geklickt wird. Ich habe festgestellt, dass sich die Funktionalität leicht ändert, wenn ich das gewünschte Attribut in das Eingabefeld einfüge.
Ich verwende die neueste Version von Chrome für Mac.
Das ist eine gute Idee, danke. Aber ich habe es versucht und es gibt für mich keine Verhaltensänderung. – Miles
@Miles - Siehe bearbeiten für eine andere Idee. –
Travis, vielleicht hast du einen Tippfehler in deiner Antwort. Ich habe es in "Return false" geändert. (nahm das :) und es hat funktioniert. Vielen Dank! Ich gebe dir die Antwortpunkte, weil du zuerst geantwortet hast. – Miles