我正在工作一个仅接受数字的简单字段,我想要的是在键入时在值的末尾添加“ .00”。例如1000.00。
我无法实现该格式的问题,在1位数字之后添加了'.00'并且无法再键入。
我尝试了answer here,但是没有用。
这是我的sample work
$(document).ready(function(){
$("input").keyup(function(){
var val = parseInt($(this).val());
$(this).val(val.toFixed(2));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
希望你能帮助我。
谢谢。
答案 0 :(得分:3)
使用这样的模糊功能:
$("input").blur(function(){
var val = parseInt($(this).val());
if(val){
$(this).val(val.toFixed(2));
}else{
$(this).val(0);
$(this).focus();
}
});
答案 1 :(得分:3)
如果您要输入1
并立即得到1.00
,然后输入2
并得到12.00
,则需要保存光标位置(如here所述。
input
元素答案 2 :(得分:2)
尝试一下:
$( 'input' ).on( 'input', function() {
var val = $( this ).val(),
arr = val.split( '.' );
if ( arr.length > 1 )
$( this ).val( arr[ 0 ] + val.substr( val.length - 1 ) + '.00' )
else
$( this ).val( val + '.00' )
} ).on( 'keypress', function( e ) {
return e.charCode == 46 || ( e.charCode >= 48 && e.charCode <= 57 )
} )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
答案 3 :(得分:1)
我认为您应该尝试聚焦事件。
$(document).ready(function(){
$("input").focusout(function(){
var val = parseInt($(this).val());
$(this).val(val.toFixed(2));
});
});