onkeyup oder onkeypress javascript-event-Problem - Passwort status-updates
Programmierung Zunächst nur die Frage (von w3 schools)
Dem Programmieren Beispiel Weg unten (von W3 schools) ist schön und einfach, es funktioniert auf Ihrer website, aber ich bin wirklich verwirrt etwas.
onkeypress="return noNumbers(event)"
warum ist es eine Rückkehr vor die Funktion? Was tut es? Wenn Sie die Antwort wissen - wie hast du diese Informationen? Meine Vermutung wäre, dass es ermöglicht die keypressed-Funktion zur weiteren Verarbeitung der Tastenanschlag seit meiner Veranstaltung "unterbrochen"?
auch - ich habe versucht, um zu sehen, was 'Ereignis'. Es scheint nicht zu ein Stichwort. Ich verbrachte > Stunden versucht zu finden, was es ist. Es scheint nicht zugeordnet werden überall in Ihrem code-Beispiel. Normalerweise in diesem Punkt würden Sie sehen, 'diese'. Wenn es eine nicht zugewiesene variable wird es immer direkt an den event-handler? Verwirrt...
, Was ich tun will mit Ihrer Funktion
Möchte ich ein Passwort Stärke checker ALS Sie geben. Ich war auf der Suche auf Ihrem Beispiel, so konnte ich herauszufinden, wie zu erfassen Schlüssel (cross-browser-und minimal-IE7). Meine Idee war...
<input type="password" name="pword" maxlength="50" size="50" id="field_pword" onkeyup="PasswordStrength(name, 8, 'relaxed')" onblur="CheckField(name, 8, 1)">
Hinweis: ja, ich weiß, es ist besser zuordnen event-Handler außerhalb von html, aber ich konnte nicht sehen, eine Möglichkeit zur übergabe von Variablen an, es sei denn, es wurde inline. Ich bin ein Neuling, vielleicht habe ich etwas übersehen, aber... thats, warum ich es IN den HTML-Code.
auch, das ES SCHLECHT IST, wie leite ich Namen? es sendet pword, um die Funktion, aber mache ich irgendwas falsch? Sollte ich nur machen es zu einem Konstanten string? Es funktioniert so wie es ist, aber manchmal nur, weil etwas funktioniert... bedeutet nicht, dass es richtig ist. 🙂
onkeyup="PasswordStrength('pword', 8, 'relaxed')" onblur="CheckField('pword', 8, 1)">
Meine checkfield-Funktion funktioniert (ich benutze es nach jedem Feld) vor kurzem habe ich in PasswordStrength. Meine Frage ist... meine neue Funktion nicht übergeben das event-hander also, wie kann ich überprüfen, welche Taste gedrückt wird? Kann ich dies tun?
onkeyup="PasswordStrength(name, 8, 'relaxed', event)"
oder sollte es Lesen...
onkeyup="return PasswordStrength(name, 8, 'relaxed', event)"
Wenn ich nicht bestehen können, was auch immer "event" ist, dass die Art und Weise, in meiner Funktion kann ich genau das bekommen, was die Taste gedrückt wurde, ohne ein großes Durcheinander von code? Seit ich Lerne, ich brauche Beispiele, um so einfach wie möglich sein (bitte).
Mit meiner Funktion, ich wollte es so machen, aber ich weiß noch nicht, wie zu bekommen, welche Taste gedrückt wurde...
function PasswordStrength(sField, iMinLength, sStrength, e?)
{
var form = document.forms[0];
var gc = form[sField].value;
//once I have the value I can do checking but it would be nice to have WHAT key
//was pressed
//the e? above is where I was thinking of passing the event
W3 Beispiel ich zog einige Kenntnisse von...
function noNumbers(e)
{
var keynum;
var keychar;
var numcheck;
if(window.event) //IE
{
keynum = e.keyCode;
}
else if(e.which) //Netscape/Firefox/Opera
{
keynum = e.which;
}
keychar = String.fromCharCode(keynum);
numcheck = /\d/;
return !numcheck.test(keychar);
}
</script>
<form>
Type some text (numbers not allowed):
<input type="text" onkeypress="return noNumbers(event)" />
</form>
</body>
</html>
Als jemand typisiert, die ich ändern kann, den text mit innerHTML neben dem Passwort-Feld zu sagen, "Schwach", "Ok", "Gut", "Perfekt" oder etwas entlang jenen Linien, um das Passwort-status. Ich würde lieben, es zu tun, wie google tut dies mit einer Grafik, die Links neben dem Feld, aber ich weiß nicht, wie zu tun, dass einfach. lol.
Ist meine Art, reparierbar? Haben Sie einen besseren Weg, dies zu tun, die ich nicht kennen? Sehr geschätzt wird. Erwarten eine infusion von Weisheit...
Heyho - ich entfernte die jquery-Umfrage Frage von oben zu machen, viel kleiner. Ich kann Fragen über jquery an einem anderen Tag. I"m nur versuchen, machen ein Passwort Stärke checker, prüft die Stärke des Passworts während der Eingabe. Der code @ unten ist das, was ich Suche war von w3 schools, aber ich Verstand nicht wie Sie das gemacht haben, einige Dinge (damit meine Grübeleien oben). In der Mitte, war das, was ich attemping aber ich sehe nicht, wie ich verwenden können Stücke aus Ihrem code mit mir, wie ich meine versuchen. Unten ist die w3 Beispiel war ich Auschecken. Ich habe versucht, es brechen, so gut ich konnte...
OK-Nachdem eine schnelle Google-Suche, werde ich beginnen Sie hier: webresourcesdepot.com/...
Möchten Sie vielleicht das gleiche zu tun die gleichzeitig.
Hi PerryCS, werde ich nicht erlaubt, dies als eine Antwort, denn es ist nicht eine Magische Pille oder etwas, aber nach der überprüfung etwa ein Dutzend plugins, ich denke, dass dies am besten für Ihre Bedürfnisse: archive.plugins.jquery.com/project/password_strength. Hoffe, es hilft!
InformationsquelleAutor PerryCS | 2011-12-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) Den "zurück" - Wort macht es so, dass wenn die Funktion
false
, ruft, zurück an die Veranstaltung und hält die Tastatureingabe verarbeitet, durch den browser (und in dem erscheinenden Eingabefeld, wenn das, was der Fall ist).2)
event
ist das Event-Objekt, welches Informationen über das Ereignis wie welche Taste wa betätigt, wo das Ereignis ausgelöst wurde, etc.3) ja, es ist schlimm, wie Sie auf der Durchreise sind
name
, weil Sie nicht übergeben werden. Verwendenthis.name
statt.4) In diesem Fall brauchen Sie nicht
return
weil Sie nicht versuchen zu stoppen, einen Tastenanschlag hinzufügen in das Textfeld ein. Ebenso werden Sie nicht brauchen, um passierenevent
weil Sie passieren könnenthis.value
erhalten Sie den Inhalt der textbox.5) können Sie einfach pass
this
stattthis.name
,this.value
oder was auch immer andere Werte.Dann, in der Funktion get werden die Eigenschaften von dem einzigen argument.6) wenn man Einmal den gesamten Wert mit
this.value
können Sie Ihre tests auf. Es gibt absolut keine Notwendigkeit, zu wissen, welche Taste gedrückt wurde, vor allem so Dinge wieCtrl+V
würde, komplett Schraube, die Sie über.7) können Sie haben eine
<div>
und ändern Ihre Breite und/oder hintergrund-Farbe zu machen, eine Art Stärke-Balken.InformationsquelleAutor Niet the Dark Absol
Nur auf Ihre ersten Fragen zur Programmierung:
können Sie unterbrechen die Handlung je nach dem Werte der Inhalte. Rückkehr
false
innenonclick
wird Ende des auf nicht zu tun. So
<a href="http://test.de"
pflegt link Sie zu nichts wennonclick="return false;">linkname</a>
JavaScript ist aktiv.
event
wird einfach eine variable deklariert werden, bevor Sie geht in die eigentliche Veranstaltung, auch die Erläuterungen weiter unten.Kennen Sie die Elemente, die Event-Handler-Attribute in JavaScript?
Sie sind Funktionen, d.h.
wenn Sie weisen eine
onclick
Attribut für ein tag es ist einfach ein anderer abgestimmter Weise zu erstellen, diese anonyme Funktion. SoVerhalten, als wenn Sie eine anonyme Funktion, die das argument
event
.Diese Verhalten sich genau gleich, außer der verspäteten Zuweisung.
Den
this
Stichwort ist immer der Eigentümer Objekt, dessen Eigenschaft-Funktion Sie aufrufen oder das Objekt, das Sie übergeben haben, um einapply
/call
Methode. In diesem Fall ist es offensichtlich die Eigentümer - das DOM-element. Sothis.value
ist dieinput
s Wert.Den
event
an die Funktion übergeben wird nur ein Objekt enthalten einige nützliche Informationen über den aktuellen Browsern Zustand und Sonstiges. Es ist mit einer leicht unterschiedlichen Eigenschaften gefüllt mit verschiedenen Werten in verschiedenen Browsern, aber die wichtigste Funktion ist die gleiche wie überall.name
.. bei jedem Zugriff auf eine Eigenschaft des Eigentümer-Objekt kann man auch weglassenthis
Schlüsselwort. So ist es einfach der gleiche Konflikt wie derjenige über das schreibenstatt
window.onload
oderthis.onload
oder sogarthis.window.onload
(die alle theoretisch zu arbeiten, da das alles mit Objekt hat eine Eigenschaft namenswindow
die auf sich selbst verweist). Man könnte sagen, es ist eine Frage der Konvention. Aber da das übereinkommen jederzeit Zugriff auf die eigenen Eigenschaften über diethis
Schlagwort (außer fürwindow
die Sie zugreifen, sollten über Ihr Eigentumwindow
) ist stark etabliert und unterstützt werden, sollten Sie wahrscheinlich schreibenthis.name
.keyup
. Oben erklärt.event
Objekt? Nur behandeln Sie wie eine normale variable.Jemand anderes antwortete 1 Tag, bevor Sie - nicht geben kann, sowohl von dir Guthaben und die 1. person hat die Antwort so ziemlich alles. Ich Schätze Ihre Zeit - ich habe mehr wissen jetzt 🙂
Kein problem, ich bin froh wenn ich helfen kann! Mein einziger Punkt: "1 Tag vorher" ein wenig übertrieben - es war 35 Minuten (um Mitternacht) 😉
Ah.... nicht beachten Sie die genaue Zeit! lol. Ich sah nur 2 Termine 🙂 Gut, es ist vom letzten Jahr jetzt aber nicht genau ein Jahr her 🙂
InformationsquelleAutor Matmarbon