アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、文字列の入力チェックの関数を作成しています。

function checkMemberId() {
if(document.form1.memberId.value==undefined){
alert("番号を入力してください。");
return false;
}else if(??????????){
alert("空白が含まれています。");
return false;
}else {
alert("半角数字を入力してください。");
return false;
}
}

上記の else if の条件に、document.form1.memberIdに空白を含んだ文字列が入力されたらアラートメッセージを出すという処理を記述したいのですが、どういう処理を記述すればよいのでしょうか。
空白は全角・半角とも対象で、すべて空白が入力された時も同様の処理にしたいです。
以下、該当のHTML部です。

<form name="form1">
<input type="text" name="memberId">
</form>

以上、よろしくお願い致します。

A 回答 (4件)

else if( document.form1.memberId.value.indexOf(" ") >= 0 || document.form1.memberId.value.indexOf(" ") >= 0 )


で、どうでしょう?

この回答への補足

回答ありがとうございます。
教えていただいた方法でやってみたのですが、文字が一文字でも入力された時は動作しますが、全て空白にした場合(全角・半角とも)、未入力と見なされてしまうようで、一番目の条件にヒットしてしまいます。空白=未入力ということなのでしょうか・・・。

補足日時:2006/03/29 11:01
    • good
    • 0

#3です。




>> 全て空白にした場合(全角・半角とも)、未入力と見なされてしまうようで、一番目の条件にヒットしてしまいます。空白=未入力ということなのでしょうか・・・。

と書かれてので、

> if(document.form1.memberId.value==undefined){
if(document.form1.memberId.value==""){

とした方がよいかもしれませんね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
crumさんとpapillon68さんの回答を合わせて、

function checkMemberId() {
if(document.form1.memberId.value==""){
alert("番号を入力してください。");
return false;
}else if(document.form1.memberId.value.indexOf" ") >= 0 || document.form1.memberId.value.indexOf(" ") >= 0 ){
alert("空白が含まれています。");
return false;
}else {alert("半角数字を入力してください。");
return false;
}
return true;
}
という記述にしたところ、問題なく動作させることができました。
ありがとうございました。

お礼日時:2006/03/30 00:31

bonotanさん、こんにちは。




逆転の発想になるのですが、
入力は半角数字のみ許可しようとされているようなので、
半角数字でなければエラーメッセージを出すようにするのはいかがでしょうか。


function checkMemberId() {
if(document.form1.memberId.value==undefined){
alert("番号を入力してください。");
return false;
} else if(! document.form1.memberId.value.match(/^[0-9]+$/)) {
alert("半角数字を入力してください。");
return false;
}
return true;
}
    • good
    • 0

正規表現を使って、空白にマッチするかをテストするとか。


var member_id = document.form1.memberId.value;
if ( !member_id.match( / | / ) ){ alert( 'white space contained.' ); }

逆に、空白を先に削除してからチェックする方が楽かも。

member_id = document.form1.memberId.value.replace( / | /g, '' );
    • good
    • 0
この回答へのお礼

お返事遅れて、申し訳ございません。
正規表現は私には難しすぎて、よく理解できなかったので、もう少し勉強したいと思います(;_;)
回答ありがとうございました。

お礼日時:2006/03/30 00:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!