WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:JSファイルをイベントによって読み込む場合

0:[投稿] うみ [MAIL] [2003/12/31 12:38 ][環境:IE6.0 わからない]

はじめまして
今回JSファイルを読み込む場合についてお聞きしたいと思います。
アンケートや、登録画面などで不備があった場合アラートで警告を出すスクリプトを使用しています。
これをJSファイルに移行すると全然機能しなくなってしまいました…(^^;
ボタンを押して不備があった場合にアラートが出る仕組みになっているのですが…
***************************************************

<!-- 入力制御アラート ここから -->
<SCRIPT language="JavaScript">
<!--
function Check(){

   if(document.form.user_id.value==""){
       alert("ユーザーIDを入力してください。");
       return false;
   }
   if(document.form.password.value==""){
       alert("パスワードを入力してください。");
       return false;
   }
   if(document.form.ques.value==""){
       alert("パスワードを忘れた時の「質問」を入力してください。");
       return false;
   }
   if(document.form.ans.value==""){
       alert("パスワードを忘れた時の「答え」を入力してください。");
       return false;
   }
   if(document.form.name.value==""){
       alert("ハンドルネームを入力してください。");
       return false;
   }
   if(document.form.email1.value==""){
       alert("E-mail アドレスを入力してください。");
       return false;
   }
   if(document.form.email1.value.indexOf("@")<=0){
       alert("Eメールアドレスが正しくありません。");
       return false;
   }
   if(document.form.email1.value.indexOf(".")<=0){
       alert("Eメールアドレスが正しくありません。");
       return false;
   }

   return true;
}
// -->
</SCRIPT>
<!-- 入力制御アラート ここまで -->
***************************************************


以上が正常に機能しているスクリプトなのですが
これをJSファイルにすると

***************************************************
function check(){

   if(document.form.user_id.value==""){
       alert("ユーザーIDを入力してください。");
       return false;
   }
   if(document.form.password.value==""){
       alert("パスワードを入力してください。");
       return false;
   }
   if(document.form.ques.value==""){
       alert("パスワードを忘れた時の「質問」を入力してください。");
       return false;
   }
   if(document.form.ans.value==""){
       alert("パスワードを忘れた時の「答え」を入力してください。");
       return false;
   }
   if(document.form.name.value==""){
       alert("ハンドルネームを入力してください。");
       return false;
   }
   if(document.form.email1.value==""){
       alert("E-mail アドレスを入力してください。");
       return false;
   }
   if(document.form.email1.value.indexOf("@")<=0){
       alert("Eメールアドレスが正しくありません。");
       return false;
   }
   if(document.form.email1.value.indexOf(".")<=0){
       alert("Eメールアドレスが正しくありません。");
       return false;
   }

   return true;
}
***************************************************

こうなりますよね?
<!-- 入力制御アラート ここから -->
<script language="javascript" type="text/javascript" src="●●.js"></script>
<!-- 入力制御アラート ここから -->
というように記述したのですが全然読み込んでくれません。

登録ボタンは

<input type="submit" value="確認画面へ" style="border:solid 1px #739b9b; color:#000000; background-color:#ffffff;">

としています。
何か記述が足りないのでしょうか…
本当に困っています!
どなたか教えていただけないでしょうか?


1:[回答] バギンズ [2004/01/01 03:33 ]

日本語を含む文章をそのままJSファイルにすると、ブラウザによっては文字化けしますよ。
回避策として、script要素にcharset属性を指定する方法があるようです。
(全てのブラウザに通用するかどうかは知りません。)
文字コードがシフトJISなら、とりあえず、script要素に charset="Shift_JIS" を追加してみてはいかがでしょう?

ところでCheck関数はフォームのOnSubmitイベントから呼んでいるのでしょうか?
そこも記述しないと意味がわかりません。


2:[回答] うみ [2004/01/01 12:47 ]

バギンズさん、素早いご回答をありがとうございます!
文字化け…強制的にEUCに変換されてしまうやつですよね?
ありがとうございます、埋め込んでおきますね!!

あと
少々わからなかったものなので
ソースをアップいたしました。
これを見ていただいて何かご教授いただけたら幸いです。

http://pandora.nu/karudiana/sosu.txt


3:[回答] バギンズ [2004/01/02 01:51 ]

原因がわかりました。

JSファイルの方の関数名の先頭の小文字の「c」を大文字の「C」に替えれば動くと思います。

function check(){
    ↓
function Check(){

丸ごとカット&ペーストで、JSファイル化したのかと思っていたので、細かい違いがある事に気が付きませんでした。
今後はカット&ペーストしましょうね。(^_^;)


4:[完了] うみ [2004/01/05 01:34 ]

返答が遅くなってしまって申し訳ありません!
こちらで試してみたところ、無事に動きました!!
馬鹿みたいな間違いに気付かず悩んでいた自分が恥ずかしいです…
Javaに慣れるために手打ちでがんばっていたので…
こうしたことがあると、やはりコピペが一番いいですね。
ありがとうございました!!

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World