我试图通过检查输入的当前值是否与输入的先前值相同来尝试使用javascript和jquery将输入中的文本写入密钥。除非按住退格键直到所有文本都从输入中消失,否则此方法正常工作。在这种情况下,它不会因为某些原因更新我使用的变量。这种情况发生在所有浏览器中,并且只有在删除所有文本时才会发生,也只有在使用退格键(而不是其他键)时才会发生
我在javascript上非常新,所以任何提示都表示赞赏:)
的javascript:
fsa = (function() {
var inputId = "";
var sigId = "";
function resetOnFocus() {
inputId = document.activeElement.id;
sigId = "sig-" + document.activeElement.id;
}
function getText() {
lastentry = $("#" + inputId).val();
}
function writeText() {
if ($("#" + inputId).val() != lastentry) {
document.getElementById(sigId).innerHTML = 'current entry :' + $("#" + inputId).val() + '</br>last entry: ' + lastentry;
}
}
return {
resetOnFocus: resetOnFocus,
getText: getText,
writeText: writeText
}
})();
//call the functions
//clear variables on focus
$('input').focus(function() {
fsa.resetOnFocus();
});
//get input value on key press
$('input').keydown(function() {
fsa.getText();
});
//prints input value on keyup if input value is new
$('input').keyup(function() {
fsa.writeText();
});
和html:
<input id="first-name" class="i1" />
<div id="sig-first-name" class="o1" /></div>
<input id="last-name" class="i2" />
<div id="sig-last-name" class="o2" /></div>