我有一个简单的表单,当用户在输入字段上按下回车键时,我想提交一个简单的表单(即火ajax)。如果我按提交按钮,事件触发正常,但是当使用键控来触发完全相同的功能时,输入字段的值为空。我尝试使用$(this).val()传递输入字段的值(来自keyup函数),但传递的参数仍为空。jQuery:输入值在keyup上丢失?
更新II:该问题仅出现在初始加载时。点击刷新后,事件根据预期开火。经过Chrome和FF测试。
// Value of #pin is blank in getKeyAjax()
$('#pin').keyup(function(e) {
if (e.keyCode == 13) {
console.log('DEBUG: Keypress detected (13)')
getKeyAjax();
}
});
// Value of #pin is correct in getKeyAjax()
$('#btnPwdCreate').click(function() {
getKeyAjax();
});
function getKeyAjax() {
console.log('DEBUG: Starting ... getKeyAjax()');
var txtPin = $('#pin').val();
console.log('DEBUG: Value of txtPin: ' + txtPin);
.
.
.
}
它似乎在这里正常工作,对不对? (http://jsfiddle.net/swz5c/) – Abraham 2012-07-15 13:43:21
我忘了提及它确实有效,但有时只是(通常不)。这反过来又使得解决问题变得更加困难。尽管如此,我只在Chrome和FF中进行过测试。 – 2012-07-15 13:45:05
嗯,你可以在jsfiddle.net上用你的HTML和JS设置一个小提琴吗? – Abraham 2012-07-15 13:51:14