簡體   English   中英

JavaScript:返回true無效

[英]Javascript: return true not working

我需要防止文本框輸入字母和除點字符以外的任何其他特殊字符。 這是我的功能:

    function key_block(current_element,event){
                var str = current_element.val();
                //alertify.log(str);
                var regex = new RegExp("^[0-9.]+$");
                var key = String.fromCharCode(event.charCode ? event.which : event.charCode);

                if (regex.test(str)) {
                   //event.preventDefault();
                   return true;
                } else {
                     current_element.val('');

                     return false;
                }
            }
if(key_block($(this),e)){
              //allow typing
            }

該代碼在Chrome瀏覽器中可以正常工作。 但是在Firefox中,這不能正常工作。 我在Firefox中獲得regex.test(str)的值“ true”。 但是我不知道為什么這不允許我鍵入代碼。 有人可以在這里找到真正的問題嗎?

如果我正確理解了您的問題,則說明您正在過濾傳入事件的charCode以阻止不需要的字符。 如果是這樣,我認為您需要測試key而不是str

if (regex.test(key)) {

暫無
暫無

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

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