• ベストアンサー

サーバーにupすると動作しません。

こんにちは。お世話様になります。  JavaScriptで設定した後、htmlファイルで保存し、サーバーにupしますが、htmlファイルの段階では、きちんと動作するのですが、サーバーにupすると動作しなくなり、困っております。  以下が、そのコードです。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // テキスト領域の合計を計算 function ttlValue() { txt = 6; // テキスト領域の総数 ttl = 0; for(i=0; i<txt; i++) { if(document.nForm.elements[i].value != "") { ttl += eval(document.nForm.elements[i].value); } } document.nForm.result.value = ttl; } //--> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <FORM name="nForm"> 数値を入力してください。合計値を表示します。<BR> <INPUT type="text" name="t1" onChange="ttlValue()"><BR> <INPUT type="text" name="t2" onChange="ttlValue()"><BR> <INPUT type="text" name="t3" onChange="ttlValue()"><BR> <INPUT type="text" name="t4" onChange="ttlValue()"><BR> <INPUT type="text" name="t5" onChange="ttlValue()"><BR> <INPUT type="text" name="t6" onChange="ttlValue()"><BR> <BR> 合計<INPUT type="text" name="result" size="10"> </FORM> </BODY> </HTML>  沢山のテキストボックスに入力された数字の合計を出したいのですが、サーバーにupした途端、なんの動作もしなくなります。  こちらで教えていただいた、半角文字しか入力できないようにするコードは、サーバーにupしても問題なく動作します。  原因としては、何が考えられるでしょうか。別にこのコードではなくてもよいので、他に、代替できるようなコードはありますでしょうか。    windowsXP、IE6.0を使用しております。 皆様、お忙しいとは思いますが、何卒、ご教示の程、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

satoshi81さんのコードで当方でも同じ現象が確認できました。 環境は同じ「WindowsXP SP3」「IE6」です。 原因を探ったところ、No.3さんも指摘しているようにIEのセキュリティの設定にあるようです。 IEの「ツール>>インターネットオプション>>セキュリティ(タグ)」の 「このゾーンのセキュリティのレベル」という欄のスライドバーが (※スライドバーが出ていない時は、右下の『規定のレベル』というボタンをクリックして下さい。) 「高」になっていると、satoshi81さんと同じ、「ローカルのHTMLファイルでは動作するが、サーバーからダウンロードすると動作しない」という現象が起きました。 このセキュリティレベルのスライドバーを「中」にすることで、サーバーからダウンロードした場合も動作することが確認できました。 よって、これが原因ではないかと思います。

satoshi81
質問者

お礼

cosomos_thさん、返信が遅くなり、申し訳ございません。 解決しました!! 大変丁寧なご教示を賜りまして、本当にありがとうございます。 また、何かございましたら、お手数ではございますがご教示くださいませ。

その他の回答 (3)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

>サーバーにアップした途端、全く動作しないです。 表示はできていて、ソースも正しくDLされているということですよね? IEのセキュリティ設定は確かゾーン分けをして設定できたと思いますが、外部ネットのセキュリティでスクリプトを無効にしていたりしませんか? 違っていたら失礼。

satoshi81
質問者

補足

>表示はできていて、ソースも正しくDLされているということですよね?  はい、そのとおりです。 スクリプトの無効とかは、インターネットオプションから設定できるのでしょうか。  すみません、ど素人の質問ですが、何卒宜しくお願い致します。

  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

直接の回答ではありませんが、 > txt = 6; // テキスト領域の総数 フォームが一つだけだったら document.getElementsByTagName('input').length; で、そのページ内の input タグの総数を取得できます。 数を定数で指定した場合、増減した時に手動で定数値も変更する 必要がでてしまいますのでこれはやめた方がいいでしょう。 document.nForm.elements[i] はDOM標準の document.getElementsByName('nForm')[0][i] で取得してください。 あと、HTMLなら本来は問題ないですけど極力タグは小文字で書いた方が いいです。 エラーは出ていないでしょうか。 エラーを確認しながらでないと修正できませんよ。 デフォルトだと、エラーを表示しない設定になっていたりするので 設定を変更してください。

satoshi81
質問者

補足

アドバイス、ありがとうございます!  ご意見どおり、書き換えてみたのですが、動作しないです。。。 dream weaver8.0を使っているのですが、エラーは、出ていません。 なにかおかしい所があれば、黄色くマークされるので、エラーだと、きちんと教えてくれているようになっていると思います。  これからは、小文字で書くように、致します。ありがとうございます!  他に、有効な方法があれば、申し訳ございませんが、ご教示の程、お願い致します。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

WinXP SP3 Pro + IIS でこのままで動いてますが …

satoshi81
質問者

補足

ご意見、ありがとうございます。 私のPCは、 オペレーティングシステム Microsoft Windows XP Professional オペレーティングシステムのバージョン 5.1.2600 なのですが、サーバーにアップした途端、全く動作しないです。 困っています。。。

関連するQ&A