Ich habe ein relativ einfaches Skript für die Manipulation des Textes in zwei Feldern. Dies funktioniert zunächst gut, aber wenn ich auf die Schaltfläche #check
klicken, scheinen die Werte $field1
und $field2
nicht zu aktualisieren. Dies bedeutet, dass, während das Skript das zweite Feld manipulieren kann, wenn Text in das erste Feld eingegeben wird, es das erste Feld nicht manipulieren kann, wenn Text in das zweite Feld eingegeben wird.Aktualisieren der Werte von Variablen in jQuery
$(document).ready(function() {
var val = "";
$field1 = $("#password");
$field2 = $("#fake-password");
$('#check').click(function() {
$field1 = $("#fake-password");
$field2 = $("#password");
$("#password").hide();
$('#check').hide();
$("#fake-password").show().focus();
$('#check-inv').show();
});
$('#check-inv').click(function() {
$field1 = $("#password");
$field2 = $("#fake-password");
$("#fake-password").hide();
$('#check-inv').hide();
$("#password").show().focus();
$('#check').show();
});
$(function() {
$field1.on('keydown', function() {
setTimeout(function() {
$field2.html($field1.val());
val = $field1.val();
$field2.val(val);
}, 0);
});
});
});
ich entschuldige mich, wenn dies ein offensichtlicher Fehler ist, wie ich auf die Sprache relativ neu bin, aber ich würde jede mögliche Hilfe bei der Festsetzung dieses Problems zu schätzen wissen.
Randbemerkung: Sie fallen zum Opfer [* Der Horror der Implicti Globals *] (http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html): Deklariere '$ field1' und' $ field2'. –
Die Variablen sollten mit "var" deklariert werden. Um Zugriff auf sie in verschiedenen Funktionen zu haben, sollten Sie sie außerhalb von Funktionen deklarieren. –