javascriptの入力チェックについて



0   名前: kセイバー : 2006/07/18(火) 21:28  ID:7DVSic4A
現在javascriptで入力チェックプログラムを作っているのですが

下記のような文をJSPで組みtestを未入力に、test2に20文字入れて呼び出したときに両方のエラーメッセージがでます。
成功イメージはalert("項目に未入力の項目があります");だけポップアップが出たあと閉じるイメージです
IEのバージョンは6.02800.1106ISです

原因がわからなくて困っているのですが、どなたかご存知の方がいればご教授願えないでしょうか?


functin test(){
if(test.length<=0 ||test==null || test2.length<=0 ||test2==null){
alert("項目に未入力の項目があります");
window.close();
}
//strlenExはバイト数を返すメソッド
if(strlenEx(test)>10||strlenEx(test2)>10){
alert("項目の長さが長い項目があります");
window.close();
}
//サブミット処理
}
/* 文字列のバイト数を返すメソッド */
function strlenEx(str) {
var len = 0;
var i = 0;
str = escape(str);
for (i = 0; i < str.length; i++, len++) {
if (str.charAt(i) == "%") {
if (str.charAt(++i) == "u") {
i += 3;
len++;
}
i++;
}
}
return len;
}

1   名前: m035 ◆Wpzr1YKOiq : 2006/07/18(火) 21:28  [URL]  ID:K4LL1oA9
functin test(){

function test(){
にして、2つ目のifをelse ifにすると出来そうですが。
それと、test.lengthのような参照はやめたほうがよろしいかと思います。
このような方法での参照が時代遅れですし、関数名とかぶっているので。
idを振ってdocument.getElementById("test")とするか、document.forms["form名"].elements["test"]と参照したほうがいいでしょう。

2   名前: kセイバー : 2006/07/18(火) 21:28  ID:7DVSic4A
お返事いただきありがとうございます、
else ifを使うという初歩的なことを忘れていました、
ありがとうございます
lengthの件については勉強してみます。

一覧へ戻る