Behandeln Sie Benutzer, der auf einer ASP.NET MVC-Website den "Enter" -Schlüssel drückt
Arbeite ich an einer ASP.NET MVC-web-site, die mehrere submit-buttons. also
<input type="submit" name="SubmitButton" value="Reset" />
<input type="submit" name="SubmitButton" value="OK" />
<input type="submit" name="SubmitButton" value="Back" />
Ich brauche, um Benutzern zu erlauben, schnell abschicken des Formulars durch drücken der 'Enter' - Taste. HTML-standard scheint, um anzugeben, dass der erste submit-button wird vermutet, wenn ein Benutzer drücken Sie die "Enter" - Taste. Allerdings muss ich den 2. button (z.B. "OK") - Taste die Schaltfläche Standard, und aus Gründen, die ich nicht einmal darüber reden wollen, ändern Sie die Taste, um eine option.
Habe ich gegoogelt um und fand ich dieser Beitrag über die Verwendung der Seite.Form.DefaultButton in ASP.NET aber das funktioniert nicht mit ASP.NET MVC.
Ich habe auch versucht, den folgenden javascript-Lösung, und es funktioniert in Chrome funktioniert aber nicht im IE6
$('body').keypress(function(e) {
if (e.which === 13) {
$("input[value='OK']").trigger('click');
}
});
Ich denken kann, einige wirklich extreme Lösungen wie das gehen durch die einzelnen Steuerelemente in das Formular ein Anhängen der oben genannten Funktion zu Ihnen. Aber ich glaube nicht, dass das eine sehr saubere Lösung, so Frage ich mich, hat jemand eine bessere Lösung?
InformationsquelleAutor der Frage oscarkuo | 2009-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
First off, das ist falsch:
Alle drei sind submit-buttons. Ein reset ist ein input type="reset". Erhalten, die sortiert ist. Zweitens habe ich erfolgreich umgesetzt, so etwas wie, dass, und es funktioniert auf IE6. Versuchen Sie dies:
Den Fokus() Teil ist die Schaltfläche erscheint gedrückt, wenn der Benutzer die EINGABETASTE drückt. Ganz nette.
InformationsquelleAutor der Antwort karim79
Verwenden.
InformationsquelleAutor der Antwort jitter
Sollten Sie nur die Schaltfläche "senden". Die reset-Taste sollte
type="reset"
und die zurück-Taste sollte wohltype="button"
wie diese:Dann Reset und OK wird nur so funktionieren, wie Sie sollen, und Sie brauchen nur zu behandeln, die Zurück-Taste, klicken Sie auf mit Javascript.
Edit: Die andere Möglichkeit wäre das Zurücksetzen und Wieder submit-buttons jeweils in Ihren eigenen Formen im inneren iframes. Dann würden Sie ignoriert werden, indem der main-form und wäre nicht Standard-Tasten. Auch dies würde ermöglichen es Ihnen, zeigen Sie Sie an verschiedene server-Aktionen, wenn nötig und es wäre nicht das Vertrauen auf Javascript für den button Aktionen.
InformationsquelleAutor der Antwort CoderDennis
Da du jquery verwenden, wenn Sie hotkeys pluginkönnen Sie einen solchen Ansatz:
InformationsquelleAutor der Antwort Sinan
Nein, die Verwendung der enter-Taste ist nicht definiert, es ist ein proprietär-Erweiterung wurde Hinzugefügt, unter verschiedenen Interpretationen. Erhalten Sie unterschiedliche Verhalten in verschiedenen Browsern (und es kann sehr gefährlich werden, wenn Sie beginnen, mischen in verschiedenen kulturellen oder UI-Konventionen über Links nach rechts/rechts nach Links Reihenfolge der Optionen).
Wenn es nur 1 Schaltfläche auf das Formular, dann werden alle mainstream-Browser geschehen zu Folgen, das gleiche Verhalten - Sie senden das Formular als wenn die Taste gedrückt wurde (buttonName=buttonValue enthalten ist die form-Daten). Natürlich bedeutet dies nicht die buttons onclick-handler wird Feuer - das Verhalten ist browser-spezifisch.
Wenn es mehrere Tasten, es ist ein kompletter Mist Schießen. Einige Browser entscheidendass die erste Schaltfläche (und die definition der ersten kann variieren - die meisten verwenden die erste erwähnt im Html-Baum, während andere versuchen, mit Bildschirm position) auf den geklickt wurde, und verwenden Sie es in der Vorlage, während mit anderen Browsern (insbesondere in einigen Versionen von IE) stellen Sie den ebenso richtigen Annahme, dass keine bestimmte Taste gedrückt wurde, und so nicht über einen buttonName=buttonValue (der rest der form vorgelegt wird, in Ordnung).
InformationsquelleAutor der Antwort David
Schaltfläche ändern, um in Quelle aber nicht optisch (ie, CSS verwenden, um die Tasten zu vertauschen)?
InformationsquelleAutor der Antwort Svend