0
我想要显示一个静态html元素,如果用户开始键入,该元素将更改为输入字段,并且已预先填充键入的文本。在基础知识,我能得到这个与这样的代码工作(假设可见的类切换可见性):在执行ajax时粘贴到输入时缺少按键事件
$(document).keypress(function(event){
if ($('input').hasClass('visible')) {
return;
}
$('input').addClass('visible');
$('input').val(String.fromCharCode(event.which));
$('input').focus();
$('input')[0].setSelectionRange(1, 1);
});
然而,在现实世界中的代码(见http://jsfiddle.net/gq3m7145/的测试用例),预充只装满后才一个ajax调用已经执行(它在成功回调中完成)。然后,快速输入几个字符,只设置第一个字符并丢弃其余字符。可能,由于ajax调用位于两者之间,第二个字符不会被输入到输入。
快速&肮脏的解决方案是不组织我的代码在这一部分:只需在接收时直接填写输入。
有没有更好的方法?例如收集接收到的输入,直到ajax完成,我准备好在实际输入字段中接收按键了?
究竟你的“组织我的代码”是什么意思? – Pointy
我做了一些独立的功能:1)显示输入(需要发生的事情比显示更多),2)预先填充输入,以及3)关注输入结束。 – Lode
那么如果这是有问题的代码,那么在这里发布它是个好主意。 – Pointy