2011-08-09 44 views
1

我有一個用戶名輸入表單,但我希望不要讓用戶添加空格或添加用戶名時按空格鍵,如何做到這一點在jQuery中,我的意思是,如何在我當前的代碼中添加這樣的驗證?當填寫輸入表格時強制一個沒有空格鍵

if(document.getElementById("cvusername")!== null && (cvusername == "" || cvusername.length < 5 || cvusername.length > 30)){ 
    alert("-username is required\n-should not be less than 5 characters\n and not greater than 30 characters"); 
    return false; 
} 
+0

你想把這個驗證在哪裏?在按鈕或按鍵? – sailhenz

+0

一旦按下提交按鈕 – sasori

+0

如果您正在使用jQuery,您可能需要使用它,而不是直接在您的示例中使用本機DOM API。 – alex

回答

3

檢查是否存在在用戶名空格字符:

if(document.getElementById("cvusername")!== null && 
    (cvusername == "" || 
    cvusername.length < 5 || 
    cvusername.length > 30 || 
    cvusername.indexOf(' ') != -1)){ 

    alert("-username is required\n-should not be less than 5 characters\n and not greater than 30 characters. It may also not contain spaces"); 
    return false; 
} 
4

我有一個用戶名的輸入形式,但我希望不會讓用戶添加一個用戶名時添加空格或按空格鍵,怎麼做,在jQuery的?

KEYUP事件,你可以從input元素去除所有空格字符。

$('input:text').keyup(function() { 
    $(this).val(function(i, value) { 
     return value.replace(/\s/, ''); 
    }); 
}); 

jsFiddle

...如何在我當前的代碼中添加這樣的驗證?

要在提交時再次驗證,只需使用$('input:text').val().search(/\s/) === -1即可。如果有效,這將返回true

jsFiddle

正如評論者所建議的那樣,您可能還想綁定到paste事件和類似事件。

確保您確認服務器端缺少空白。

+0

@ sje397 - 將相同的函數添加到onchange或blur事件中,將在提交之前從該值中除去所有空白。 –

+0

我需要的是,不允許用戶單獨使用單個輸入表單的空格鍵,我在這個查詢開始時發佈的一個..如何添加這樣的功能/驗證與我提供的代碼? – sasori

2
<input type="text" id="nospace" /> 

$('#nospace').keypress(function(event) { 
    if (event.which == 32) { 
     alert('No space'); 
     return false; 
    } 

    // this is for PASTE (ctrl + v) 
    if(event.ctrlKey && event.which == 86) { 
    alert('no space allowed'); 
    $(this).val($(this).val().replace(' ','')); 
    } 

}); 
+0

@alex感謝您的信息。再次感謝。 – thecodeparadox

+0

另外,不是檢測用於粘貼的鍵盤按鍵,而是使用'paste'事件。 – alex

相關問題