2011-08-09 18 views
1

ユーザー名の入力フォームがありますが、ユーザー名を追加するときにスペースを空けないようにしたい場合や、ユーザー名を追加するときにスペースバーを押すことはできません。そのような検証を現在のコードに追加するには?入力フォームを入力するときに空白を入れない

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

Submitボタンを一度押すと、 – 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