在我的网站中,我的文本框包含由点分隔的货币金额。用户有时按下numpad上的点,并在文本框中插入昏迷。如何将其转换为点?我试图在按键事件中这样做,但没有指示让它工作。
答案 0 :(得分:6)
<input type='text' onkeypress='return check(this,event);'>
function check(Sender,e){
var key = e.which ? e.which : e.keyCode;
if(key == 44){
Sender.value += '.';
return false;
}
}
更新:如果您在输入框中的任意位置输入
,这应该有效function check(Sender,e){
var key = e.which ? e.which : event.keyCode;
if(key == 44){
if (document.selection) { //IE
var range = document.selection.createRange();
range.text = '.';
} else if (Sender.selectionStart || Sender.selectionStart == '0') {
var start = Sender.selectionStart;
var end = Sender.selectionEnd;
Sender.value = Sender.value.substring(0, start) + '.' +
Sender.value.substring(end, Sender.value.length);
Sender.selectionStart = start+1;
Sender.selectionEnd = start+1;
} else {
Sender.value += '.';
}
return false;
}
}
答案 1 :(得分:2)
如果你想要在输入时改变一个逗号字符,我之前在Stack Overflow上回答了类似的问题:
但是,我同意@ ChrisF上面的评论。
答案 2 :(得分:0)
你可以这样做:
$('input').keyup(function(e){
var code = e.which ? e.which : e.keyCode;
console.log(code);
if (code === 110){
var input = this.value;
input = input.substr(0, input.length -1);
console.log(input);
input += ',';
this.value = input;
}
});