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