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