JQuery Masked Input plugin funktioniert nicht
Ich habe ein JQuery Masked Input plugin zu meinem Web-Projekt, aber es funktioniert nicht bei allen.
Den plugins finden Sie hier: http://digitalbush.com/projects/masked-input-plugin
Habe ich die JQuery-library und die Masked Input plugin, um meine JSP und rief den mask
Funktion für meine html <input>
element:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- JS --->
<script src="js/jquery-1.11.0.js"></script>
<script src="js/masked-input-jquery-1.3.1.js"></script>
<title>Test</title>
</head>
<body>
<script type="text/javascript">
$("#name").mask("99/99/9999");
</script>
<form id="" method="" action="">
<div>
<label for="name">
Name<b style="color: red">*</b>
</label>
<input name="studentName" maxlength="255" autofocus="autofocus" type="text" id="name"/>
......
Wenn ich meine JSP, noch bevor irgendetwas eingeben im Feld "text" erscheint auf Chrome console:
Uncaught ReferenceError: iMask ist nicht definiert
Können Sie mir helfen? Gibt es etwas falsch mit dem code?
Ich glaube nicht, dass es fix Ihr Aktuelles problem, sondern Ihren Anruf .Maske wird nicht funktionieren, weil es ausgeführt wird, bevor der rest der Seite geparst wird. Sie müssen wickeln Sie den Aufruf in jQuery document ready Funktion: $(document).bereit(Funktion(){... dein code hier ... });
Umbruch im Dokument.fertig sollte eigentlich das problem beheben. jQuery und die Maske plugin ausgeführt haben, da Sie in den Kopf. Aber wenn Sie $('#name').Maske(...) es wählt gar nichts. Es ist möglich, dass der Aufruf .Maske auf das plugin vor document ready bedeutet, dass die Maske nicht geladen wird alles, was es braucht noch. Auch wenn Sie nicht bekommen, dass Fehler, die es immer noch nicht funktionieren würde, weil Sie $('#name') , wählen Sie ein dom-element noch nicht erstellt wurde.
Sie sollten poste es als Antwort so das OP kann es akzeptieren und upvote.
Umbruch im Dokument.fertig sollte eigentlich das problem beheben. jQuery und die Maske plugin ausgeführt haben, da Sie in den Kopf. Aber wenn Sie $('#name').Maske(...) es wählt gar nichts. Es ist möglich, dass der Aufruf .Maske auf das plugin vor document ready bedeutet, dass die Maske nicht geladen wird alles, was es braucht noch. Auch wenn Sie nicht bekommen, dass Fehler, die es immer noch nicht funktionieren würde, weil Sie $('#name') , wählen Sie ein dom-element noch nicht erstellt wurde.
Sie sollten poste es als Antwort so das OP kann es akzeptieren und upvote.
InformationsquelleAutor darkly_dreaming_dexter | 2014-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann dies nicht beheben Ihr Aktuelles problem, sondern Ihren Anruf .Maske wird nicht funktionieren, weil es ausgeführt wird, bevor der rest der Seite (wo die Eingabefelder sind) analysiert.
Müssen Sie wickeln Sie den Aufruf in jQuery document ready Funktion:
Dieser weist das Skript an, warten Sie, bis die Seite geladen ist genug für den browser, um zu wissen, über die Eingabe-Felder in dem Dokument.
Als einen weiteren Kommentar best practices sagen, um alle script-tags (mit einigen Ausnahmen) nur vor den schließenden body-tag.
Andernfalls sollten Sie das Skript-tag in den Kopf mit dem rest des tags.
InformationsquelleAutor HJ05
Weil jQuery heruntergeladen, aber noch nicht fertig. Versuchen
InformationsquelleAutor David Freire
Müssen Sie wickeln Sie Ihre jQuery im Dokument.bereit, wie mehrere Leute bereits erwähnt haben. Sie müssen auch passen Sie Ihre Maske entsprechend Ihrer gewünschten Eingang. Ich nehme an, Sie wollen nur alpha-Zeichen erlaubt. Dieses JSFiddle zeigt Sie ein Beispiel mit dieser Annahme.
Wenn Sie möchten, alphanumerische ersetzen Sie einfach 'a' mit '*'. Unten ist der jQuery-Code:
Es sollte auch gesagt werden, dass mit der masked input plugin möglicherweise nicht die beste option sein, zu validieren, einen Namen, als es gemeint ist, für " Feste Breite Eingänge. Wenn Sie überprüfen möchten alphanumerische Zeichen unterschiedlicher Längen in Betracht ziehen etwas wie statt.
Das plugin, das Sie verwenden, ist eigentlich ziemlich gut auf die Durchsetzung der Termine/Telefonnummern und Sozialversicherungsnummern, weil die sind alle mit fester Breite. Aber schauen Sie sich eine von diesen: github.com/posabsolute/jQuery-Validation-Engine ODER jqueryvalidation.org
InformationsquelleAutor RossG