每当一个点'。'在我的输入(类型=数字)字段中键入,我希望它用逗号','。
替换$(box).find('input[type=number]').keypress(function(evt){
if(evt.which==46){
$(this).val($(this).val()+',');
evt.preventDefault();
}
});
该事件被解雇了,但相反,该字段完全为空。怎么了?
修改
我这样做的原因是Chrome(最新版本)与HTML5推荐相反,在输入类型=数字时使用逗号和丢弃点。我目前只针对Chrome进行开发,因为我暂时无法在其他地方测试我的应用。对此(异常?)情况的任何评论都将不胜感激。
答案 0 :(得分:2)
$(this).val($(this).val() + ',');
如果您正在键入并且总是希望在文本的末尾添加“,”符号,这可能会有效。但是,如果您将光标放在文本的中间,然后按“。”,该怎么办?登录?
答案 1 :(得分:1)
也许你的文件尚未准备就绪:
jQuery(document).ready(function() {
// your code
});
答案 2 :(得分:0)
这里我们是我的朋友,不知道为什么,似乎有用的键码是190而不是110。
尝试:
$(document).ready(function(){
$(document).find('input[type=number]').live('keydown',function(evt){
if(evt.which == 190){
$(this).val($(this).val()+",");
evt.preventDefault();
}
});
});
这是一个实时预览 http://jsfiddle.net/RTEcJ/8/
查看密钥代码,您可以尝试输入以检查您需要的密钥代码: http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
答案 3 :(得分:0)
您可以像这样使用子字符串:
str.substring(0,str.length - 1) + ','
然而,这可能不是一个理想的解决方案。
答案 4 :(得分:0)
您的代码在jsfiddle上运行时似乎有效:
$(document).find('input').keypress(function(evt){
if(evt.which==46){
$(this).val($(this).val()+',');
evt.preventDefault();
}
});
答案 5 :(得分:0)
要使char替换在任何光标位置工作,您可以绑定到keyup事件并替换this.val()中已插入的Character。
$(document).on('keyup','.myField"]', function(e,i){
if(e.keyCode==107)
{
var start = this.selectionStart,
end = this.selectionEnd;
$(this).val($(this).val().replace(/\+/,'|'));
this.setSelectionRange(start, end);
}
});