3
A
回答
4
是的,在飛行中更改它並將selectionStart
和selectionEnd
保留在之前的位置:http://jsfiddle.net/pimvdb/p2jL3/3/。
selectionStart
和selectionEnd
表示選擇邊界,並且在沒有選擇時彼此相等,在這種情況下它們表示光標位置。
編輯:決定製作一個jQuery插件,因爲它可能會在以後派上用場,並且很容易在任何地方實現。
(function($) {
var down = {}; // keys that are currently pressed down
replacements = { // replacement maps
37: { // left
'a': 'ã'
},
38: { // up
'a': 'â'
},
39: { // right
'a': 'á'
},
40: { // down
'a': 'à'
}
};
$.fn.specialChars = function() {
return this.keydown(function(e) {
down[e.keyCode] = true; // this key is now down
if(down[37] || down[38] || down[39] || down[40]) { // if an arrow key is down
var value = $(this).val(), // textbox value
pos = $(this).prop('selectionStart'), // cursor position
char = value.charAt(pos - 1), // old character
replace = replacements[e.keyCode][char] || char; // new character if available
$(this).val(value.substring(0, pos - 1) // set text to: text before character
+ replace // + new character
+ value.substring(pos)) // + text after cursor
.prop({selectionStart: pos, // reset cursor position
selectionEnd: pos});
return false; // prevent going to start/end of textbox
}
}).keyup(function(e) {
down[e.keyCode] = false; // this key is now not down anymore
}).blur(function() {
down = {}; // all keys are not down in the textbox when it loses focus
});
};
})(jQuery);
-1
我曾經做過類似的事情。我認爲這簡單得多。修改它以滿足您的需求:
$("input#s").keyup(function(e) {
var m=$("input#s");
var value= m.val();
var pos = m.prop('selectionStart');
value=value.replace(">","»");
m.val(value);
m.prop({'selectionStart':pos,'selectionEnd':pos});
});
相關問題
- 1. 預設輸入值並允許用戶更改
- 2. 允許用戶在選擇輸入中更改輸入選擇輸入
- 3. 允許用戶跳過輸入輸入,只需按Enter鍵
- 4. 用戶輸入,不允許相同的輸入兩次
- 5. 輸入框值顯示,不允許用戶改變
- 6. jQuery:輸入時更改鍵盤值
- 7. 允許浮點值輸入
- 8. 使用withInput的Laravel重定向不允許更改輸入值
- 9. 在允許用戶輸入輸入的同時向winform添加控件
- 10. 如何防止輸入鍵提交表單,但仍然允許輸入工作?
- 11. 更改值輸入重複許多時間與同一類(jQuery)
- 12. 同時更改所有輸入值
- 13. ComboBox不允許用戶輸入
- 14. 如何允許用戶輸入java
- 15. 允許用戶選擇輸入
- 16. 允許用戶輸入變量(Python)
- 17. 允許用戶只輸入文本?
- 18. Sequelize是允許用戶鍵入「空」甚至允許爲空:假
- 19. 不允許更改的輸入設置值
- 20. 如何更改.NET DateTimePicker控件以允許輸入空值?
- 21. Safari瀏覽器將不允許與輸入pssword互動,同時允許輸入到其他輸入字段
- 22. IDocHostUIHandler TranslateAccelerator不允許鍵盤輸入
- 23. 允許在熱鍵控制中輸入
- 24. 允許用戶使用jquery鍵入1或更多數量?
- 25. 不允許用戶輸入管道字符'|'輸入形式Angular
- 26. 不允許用戶在輸入中輸入HTML標籤
- 27. 更新用戶輸入的輸入值
- 28. 如何清除SAPUI5輸入字段只允許幫助輸入值允許?
- 29. XCode - 如何顯示允許用戶鍵入值的消息框?
- 30. 允許用戶鍵入多個值而不是選擇
非常感謝,所有的作品都很棒! – JJJollyjim
@ JJ56:乾杯,儘管如此,忘記提及(據我所知),這在IE8-上不支持。 – pimvdb