我有一个相对简单的脚本来处理两个字段中的文本。这最初起作用很大,但是当我点击按钮#check
时,$field1
和$field2
的值似乎没有更新。这意味着,当文本在第一个字段中输入时,脚本可以操纵第二个字段,但当在第二个字段中输入文本时,它不能操纵第一个字段。更新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);
});
});
});
我很抱歉,如果这是一个明显的错误,因为我是相对较新的语言,但我将不胜感激任何帮助解决此问题。
旁注:你堕入[* Implicti Globals的恐怖*](http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html):声明'$ field1'和'$ field2'。 –
变量应该用“var”声明。要在不同的函数中访问它们,你应该在函数之外声明它们。 –