簡體   English   中英

如何在jQuery中觸發模糊事件

[英]How to fire blur event in jquery

我具有模糊事件的功能,並使用正則表達式來替換模糊事件的輸入值。 但是我有一個問題,當輸入字段讀取下一個事件模糊時,模糊事件仍在運行它,並使我的正則表達式運行兩次並產生NaN,我非常感謝您的幫助。 這是我的代碼如下:

 $(document).ready(function(){ $('#myNumber').on('blur', function ({target}) { if ($(this).val()) { let number = parseInt($(this).val()); const num = '$ ' + number.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, "$1,"); $(this).val(num); } }); }) 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> <script src="https://code.jquery.com/jquery-1.9.1.js"></script> </head> <body> <input type="text" id="myNumber"> </body> </html> 

這是因為在第一次blur事件執行后,您有$符號。

從您的js函數中刪除它。

 $(document).ready(function(){ $('#myNumber').on('blur', function ({target}) { if ($(this).val()) { let number = parseInt($(this).val()); const num = number.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, "$1,"); $(this).val(num); } }); }) 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> <script src="https://code.jquery.com/jquery-1.9.1.js"></script> </head> <body> <span>$</span><input type="text" id="myNumber"> </body> </html> 

 $('#myNumber').on('blur', function ({target}) { if ($(this).val()) { var numberValue = $(this).val().trim(); if(numberValue.charAt(0) == '$') { var numberValue1 = $(this).val().trim().slice(2); let number = parseInt(numberValue1); const num = '$ ' + number.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, "$1,"); $(this).val(num); } else { let number = parseInt($(this).val()); const num = '$ ' + number.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, "$1,"); $(this).val(num); } } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="myNumber"> 

問題在於,當您第二次獲得該值時,它在val()具有一個“ $”,因此它不是數字,並且會引起NaN問題。 每次進入函數內部時,都應替換符號。 我也將const num =更改為var num = ...因為我不確定使用會改變的const是否好...

 $(document).ready(function(){ $('#myNumber').on('blur', function ({target}) { if ($(this).val()) { let number = parseInt($(this).val().replace('$','')); var num = number.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, "$1,"); num = '$ ' + num; $(this).val(num); } }); }) 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> <script src="https://code.jquery.com/jquery-1.9.1.js"></script> </head> <body> <input type="text" id="myNumber"> </body> </html> 

檢查這個小提琴 ..

添加此js ..

 $(document).ready(function(){ $('#myNumber').on('blur', function ({target}) { if ($(this).val()) { let number = parseInt($(this).val()); const num = number.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, "$1,"); $(this).val(num); } }); }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM