4

小数点が入力に入力された最初の文字である場合、小数点の前に0を追加する必要があるjQueryを使用して簡単なフォームを完成させようとしています。

たとえば、フォームが送信される前に、.25 は 0.25 になります。ただし、2.05 は 2.05 のままで、0 は追加されません。

ここに私を助けることができる簡単な機能はありますか? 必要がなければ、長くて詳細なことは書きません。

また、参考までに、ここに私が助けを求めている入力ボックスがあります

<input type="number" name="dailygain" id="dailygain" />
4

5 に答える 5

9

関数を使用parseFloatして、浮動小数点数をフォーマットできます。

var el = document.getElementById("dailygain");
el.value = parseFloat(el.value);
于 2012-05-14T00:31:51.753 に答える
1

1(*1)を掛けて数値にします。

あなたがそれを数にすると、それはあなたのために自動的にそれをします。システムロケールに基づくフォーマット。

例:

var x = '.25';
console.log( x*1 );  // 0.25

同じことは単項プラス(例えばconsole.log( +x );)で達成することができます

于 2012-05-14T00:33:54.393 に答える
0
$("input[name=dailygain]").keyup(function(){
   var val = this.value;
   if(val.charAt(0) === '.'){
     this.value = ('0'+val); 
   }
});

http://jsbin.com/ofivun/2/edit

于 2012-05-14T00:46:02.040 に答える
0

parseFloat はおそらくより適していますが、とにかく:

$('#dailygain').on('keyup', function() {
    if (this.value[0] === '.') this.value = '0'+this.value;
});

フィドル </p>

于 2012-05-14T00:37:24.027 に答える
0

これを関数 run に入れますonsubmit

var num=$("#dailygain").val(); //read the number from the textbox
num=num.toString(); //convert that number to a string
if (num.charAt(0)==".") //check if the string starts with a period
    num="0"+num; //if so, add a 0 in front of it
$("#dailygain").val(num); //write the number back to the tb
于 2012-05-14T00:42:55.240 に答える