2010-05-05 130 views
0

我有一個只允許輸入數字的輸入字段的網頁。 輸入字段啓動此程序驗證功能的onkeyup事件:使用正則表達式在JAvascript中進行表單驗證

function validate() { 
    var uah_amount = document.getElementById("UAH").value; 
    var allowed = /^\d+$/; 
    document.getElementById("error").innerHTML = document.getElementById("UAH").value; 

    if (!allowed.test(uah_amount)) { 
     document.getElementById("error").style.backgroundColor = "red"; 
    } 
} 

一切工作如我所料,直到我打退格按鈕刪除一些字符。在這種情況下,函數總是表現得像我輸入字母一樣。

如何解決此問題?

+1

似乎對我很好(重寫了一下,需要時變回白色):http://jsbin.com/udowe3 – Kobi 2010-05-05 18:43:24

+0

jsbin.com是一個很棒的網站:) – Amarghosh 2010-05-06 04:56:01

回答

0

如果測試成功通過,函數不會返回背景顏色。


function validate() { 
    var uah_amount = document.getElementById("UAH").value-0; 
    var allowed = /^\d+$/; 
    document.getElementById("error").innerHTML = document.getElementById("UAH").value;

if (!allowed.test(uah_amount)) { document.getElementById("error").style.backgroundColor = "red"; } else { document.getElementById("error").style.backgroundColor = "transparent"; } }