2014-09-12 94 views
2

如何防止用戶在字段中鍵入空格字符後再繼續鍵入文本字段?我試着下面幾行代碼,但它沒有工作......任何想法,爲什麼?javascript防止鍵入空格鍵

HTML

<input id="username" type="text" onkeyup="abc(event);" /> 

的Javascript

function abc(event){ 
    for(i=0;i<document.getElementById("username").value.length;i++){ 
     if(document.getElementById("username").value.charCodeAt(i) == 32){ 
     event.preventDefault(); 
     } 
    } 
} 
+0

爲了增強可讀性,可以考慮使用'indexOf'或'match'以確定該值是否包含空格,而不是通過字符循環。 – Bort 2014-09-12 11:59:44

回答

1

您可以通過將此偵聽器添加到輸入中來防止使用空間。

function preventSpace(e) { 
    var char = e.which || e.charCode; 
    if(char == 32) { 
     e.preventDefault(); 
    } 
} 

HTML

<input id="username" type="text" onkeypress="preventSpace(event);" /> 
+0

謝謝...夥計現在它正在工作..通過添加onkeypress事件監聽器 – Zameer619 2014-09-12 12:03:52

+0

不客氣! – Afsa 2014-09-12 12:04:23

0

您應該使用 event.stopPropagation();

你的聽衆是一個爛攤子,試試這個來代替:

function abc(event) { 
    if(event.keyCode === 32) { 
     console.log("space"); 
     event.stopPropagation(); 
     event.preventDefault(); 
    } 
    } 

您還應該聽keypress或​​。

+0

它不工作太.. – Zameer619 2014-09-12 11:58:54

+0

@ Zameer619看到我的更新 – nullpotent 2014-09-12 12:02:31

+0

感謝您的回答..兄弟..這只是我的事件監聽..從onkeyup tp按鍵改變..現在它是完美的工作 – Zameer619 2014-09-12 12:12:04