亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

toLocaleString 在 5 位數字后重置值

toLocaleString 在 5 位數字后重置值

青春有我 2023-03-24 15:14:04
簡介:我正在創建一個包含許多輸入的表單,其中一些輸入應該只采用整數值。這些輸入有類int-val,我在我的 Js 中引用了它。我將 int 輸入設置為在每三個整數之后有一個逗號keyup。我已經成功地這樣做了,但現在this.value在第四個字符后重置keyup,我不確定為什么。努力:這是我的代碼的樣子:function addComma(x) {   return x.toLocaleString('en');}// add function to int inputs$('.int-val').keyup(function (e) {   let val = parseFloat(this.value);   this.value = addComma(val);   console.log(this.value);}在控制臺中,“4500000”的輸出是這樣的:4454504,5004 // if adding a fifth character, this.value resets to the first character entered事實證明,這比我預期的要困難。有沒有更簡單的方法來完成這個?
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

發生這種情況是因為您正在解析本地化數字4,500并且,不受支持,因此parseFloat丟棄不受支持的字符 ( the, ) 之后的所有內容。


沒有內置方法來解析本地化數字。


對于您使用的這種特定本地化,您可以這樣做 parseFloat(this.value.replace(/,/g,''));并且可以解決該問題。


function addComma(x) {

  return x.toLocaleString('en');

}


// add function to int inputs

$('.int-val').keyup(function(e) {

  let val = parseFloat(this.value.replace(/,/g, ''));

  this.value = addComma(val);

  console.log(this.value);

})

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>


<input type="text" class="int-val" />

您仍然必須處理小數和空字符串。


查看https://github.com/globalizejs/globalize以獲得更強大的方法


查看完整回答
反對 回復 2023-03-24
  • 1 回答
  • 0 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號