Wie rufen Sie die Funktion auf text-Eingabe-enter-Taste gedrückt?
Habe ich einen div in einer Tabelle format, das ich verwende, um Daten zu filtern Optionen.
Ich habe Probleme mit dem Druck geben Sie in das Textfeld. Wenn ich drücken Sie die EINGABETASTE, wird die Warnung angezeigt, aber die Seite nur neu geladen und nicht richtig gefiltert mit einer der Optionen. Kann jemand mir erklären, was Los ist?
Bitte lassen Sie mich wissen, wenn ich unklar war oder irgendwas erklären zu müssen!
Dies ist, was mein filter option bar aussieht:
HTML:
<form name="myform">
<center><table id="mykeyTable" border="1" cellspacing="10" cellpadding="10">
<center></center>
</td>
<!--Search bar -->
<tr>
<td colspan="4">
<center>
<form>
Starts With: <input type="text" id="myText" value=""><br>
</form>
</center>
</tr>
<!-- Site Options -->
<td><center>Site</center><br>
<input type="radio" name="siteID" onclick="updateSiteID(this.value)" value="Asc"checked>
<input type ='button' id='siteIDChosen' class='button-addAsc'/>
<br>
<input type="radio" name="siteID" onclick="updateSiteID(this.value)" value="Desc" >
<input type ='button' id='siteIDChosen' class='button-addDesc'/>
<br>
</input>
</form></td>
<!-- Status options -->
<td><center>Status
<br><br></center><input type="radio" name="siteStatus" onclick="updateSiteStatus(this.value)"value="Online"> Online<br><input type="radio" name="siteStatus" onclick="up\
dateSiteStatus(this.value)" value="Offline"> Offline<br><input type="radio" name="siteStatus" onclick="updateSiteStatus(this.value)" value="Both" checked> Both </form></td\
>
<!-- usage plan -->
<td><center>Usage Plan (in MB)</center>
<br><input type="radio" name="usagePlan" onclick="updateUsagePlan(this.value)" value="yesUsagePlan"> Data Plan<br><input type="radio" name="usagePlan" onclick="updateUsage\
Plan(this.value)" value="noUsagePlan"> No Data Plan<br><input type="radio" name ="usagePlan" onclick="updateUsagePlan(this.value)" value="bothUsagePlan" checked> All Plans\
</form></td>
</table>
<br>
<form><input type='button' id='filter' name='Submit' onclick='validate()' class='button-add' value=" Filter Selections"/></form>
</center>
</form>
</div>
Javascript:
<script>
$("#myText").keypress(function(event) {
if (event.which == 13) {
alert("You pressed enter");
validate();
}
});
$(document).keypress(function(event){
if(event.keyCode == 13){
validate();
}
});
function validate() {
//...
}
</script>
GELÖST:
Ich verwendet jQuery click-to-call die gleiche Funktion wie die Taste.
$(document).keypress(function(event){
if(event.keyCode == 13){
$('#filter').click();
// validate(); doesn't need to be called from here
}
});
Deine Lösung funktioniert nur, wenn ich geben Sie auf dem Beleg, aber wenn ich den Fokus in inputText und drücken Sie die EINGABETASTE, überschreibt es die '$('#filter').klicken Sie auf ()' - Methode, und rufen Sie alle anderen verfügbaren Methoden im Skript. keine Ahnung, was ist das Problem??
InformationsquelleAutor MadsterMaddness | 2014-11-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde vermuten Sie einen Fehler in der validate () - Funktion. Versuchen Sie, die Warnung nach dem Aufruf der validate() und sehen, ob Sie noch immer die Warnung angezeigt. So...
Hmmm... ich könnte versuchen, die Einstellung des Fokus außerhalb der textbox, dann simuliert einen enter-Tastendruck.
Bei mir bewegen sich die Alarm-Funktion validiert dann die Warnung erscheint zweimal. Wissen Sie, was würde sowas verursachen? Wie simulieren Sie einen Tastendruck von innerhalb des jQuery?
Ich bin mir nicht sicher über die Warnung erscheint zweimal. Dies ist ein post, der erklärt, wie die Simulation einer Eingabe drücken, mit jQuery: stackoverflow.com/questions/3276794/...
Ich verwendet die jQuery-Klick-Funktion: api.jquery.com/click
InformationsquelleAutor EricBellDesigns
Sieht es aus wie das Problem, wie beschrieben, in Ihrer Frage, " Wie rufen Sie die Funktion auf text-Eingabe-enter-Taste gedrückt?' ist nicht ein Problem, da Sie über die entsprechenden Ereignisse einrichten, um hören Sie die Enter-Taste. Was Sie tun müssen, ist, um das validate-Funktion zum aktualisieren der Benutzeroberfläche. Bewegen Sie die Warnung in der ersten Zeile der Funktion validiert und gehen von dort aus herausfinden, wo Sie Ihren code zu brechen.
Auch, es sieht aus wie Ihre HTML-behoben werden konnte... die tags sind von der alten Schule, der veralteten code. Sie können keine verschachtelten tags. Und letzten Sie nicht schließen Sie Ihre tags richtig. Die Probleme, die Sie erleben werden könnte, im Zusammenhang, insbesondere mit den verschachtelten tags, wie der browser würde versuchen, fixieren Sie Ihre HTML-und wer weiß, welche post-Parameter des Formulars wäre senden.
Tipp: Verwenden Sie Chrome web inspector die Konsole, um zu sehen, wo genau Sie Ihren code zu brechen. Ansicht->Entwickler->Javascript-Konsole
InformationsquelleAutor biko