Javascript 如何在jskeypress中插入点而不是逗号
在我的网站上,我有一个文本框,其中包含由点分隔的货币金额。用户有时按numpad上的点,这会在文本框中插入昏迷。如何将其转换为圆点?我曾试图在按键事件中执行此操作,但未能使其正常工作。您可以执行以下操作:Javascript 如何在jskeypress中插入点而不是逗号,javascript,asp.net,Javascript,Asp.net,在我的网站上,我有一个文本框,其中包含由点分隔的货币金额。用户有时按numpad上的点,这会在文本框中插入昏迷。如何将其转换为圆点?我曾试图在按键事件中执行此操作,但未能使其正常工作。您可以执行以下操作: $('input').keyup(function(e){ var code = e.which ? e.which : e.keyCode; console.log(code); if (code === 110){ var input = this
$('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;
}
});
fiddle如果您希望在键入逗号字符时对其进行转换,我以前已经回答过有关堆栈溢出的类似问题:
不过,我同意@ChrisF上面的评论。这听起来像是本地化问题。如果区域设置有十进制逗号,您应该能够处理以该格式输入的数字。发布代码会有所帮助。如果用户在输入末尾以外的任何地方键入,则这将不起作用。
<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;
}
}