CGIでフォーム送信前に外部JSファイルで未記入チェックをしています。
チェックをするという動作は機能しています。
しかし、ポップアップで表示されるアラーとの文字が全て文字化けしてしまうのです。文字化けはマックのIE4.5だけです。
同じマックでもVer5は大丈夫のようです。

どなたかお分かりになられる方がいらっしゃったらお知恵をお貸しください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

似たような状況でお困りのようで・・・(私の質問はJavaScriptの247205)



私は件のスクリプトで、送信前のチェックを入れてますが、NN/Mac
(4.7ですが)でもOKでした。一部を書きますが、手元にソースが無く、
細かいところは不正確かもしれません。(特にifがtrueのときの抜け方)
前段階のCGIで下記スクリプトを盛り込んだHTMLを書き出し、送信時の
アラートはブラウザ側に任せています。NN5でOKなら関係ないですかね??
CGIの文字コードはどうしてます??   はずしてたら、ゴメンナサイ

<script language="JavaScript"><!--
function yourSubmit() {
 if ((document.forms[0].aaa.value != "") && (document.forms[0].bbb.value != "")) {
  alert ("複数の欄に記入すると送信できません"); break;
 }
 document.forms[0].submit();
}
//--></script>
<form action="xxx.cgi">
 <input type="text" name="aaa">
 <input type="text" name="bbb">
 <input type="button" value="送信" onClick="yourSubmit()">
    • good
    • 0
この回答へのお礼

外部ファイルにしてJSファイルを読み込むと文字化けになるようです。
いろいろ調べて解決いたしました。

有難うございました。

お礼日時:2002/04/08 14:41

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

このQ&Aと関連する良く見られている質問

Qjavascriptのalertで文字化けが解消されません。(外部js

javascriptのalertで文字化けが解消されません。(外部jsファイル読込による)

htmlファイル

<meta http-equiv="Content-Script-Type" content="text/javascript">
<script language="JavaScript" src="**/**.js" charset="shift_jis"></script>

いろいろ調べまして、charset="shift_jis"を指定したり、utf-8にしましたがうまくいきません。

jsファイル

function testalert() {
alert('テスト');
}

ご教授をよろしくお願いします。

Aベストアンサー

その外部JavaScriptファイルは
何のエンコードで記述されているのかしら。
まずそれを教えて頂戴。

Qjs radioボタンの「name」を多次元配列でつけた際の空欄チェック・チェックした値の取り出し

こんにちわ。
JavaScriptでメールフォームのラジオボタンが押印されているかチェックをしています。(全て押印されていないとアラートウィンドウでエラーコメントを表示する。その後数字の正規表現チェックをする予定)
ラジオボタンの「name」は後ほどPHPで連想配列として使用するのでこのような形にしています。
多次元配列の押印チェックとチェックした値の取り出しが出来ません。(例:AA[1]、AA[2]のチェック確認とチェックされた値の取得。取得した値は10個目の配列にひとまず格納したいAA[1][10]、AA[2][10])
どのようにすれば、出来るのかご教授お願いします。

以下のようなソースです。(質問に必要な箇所のみ抜粋しています)


JavaScript---------
function checkForm(){
var flag=0;
var errN;
for ( i = 0 ; i < 3 ; i++)
{if (document.formSample.hoge.checked)
{ flag = 1; var hoge = document.formSample.hoge.value;}}
if(flag !== 1){errN = '[問1]';} flag = 0;

for ( i = 0 ; i < 3 ; i++)
{if (document.formSample.AA[1].checked)
{ flag = 1; var AA[1][10] = document.formSample.AA[1].value;}}
if(flag !== 1){errN = '[問2]';} flag = 0;

for ( i = 0 ; i < 3 ; i++)
{if (document.formSample.AA[2].checked)
{ flag = 1; var AA[2][10] = document.formSample.AA[2].value;}}
if(flag !== 1){errN = '[問3]';} flag = 0;

if(!flag) /*選択されていない問を表示*/
{
alert(errN + '選択してください。');
}
else /*選択されている値を表示*/
{
alert('問1'+hoge+問2'+AA[1][10]+問3'+AA[2][10] );
}

}


HTML-----------------
<form name="formSample" method="post" action="" onSubmit="return checkForm()" >

問1.
<input type="radio" name="hoge" value="1" />低い
<input type="radio" name="hoge" value="2" />普通
<input type="radio" name="hoge" value="3" />高い


問2.
<input type="radio" name="AA[1]" value="1" />低い
<input type="radio" name="AA[1]" value="2" />普通
<input type="radio" name="AA[1]" value="3" />高い

問3.
<input type="radio" name="AA[2]" value="1" />低い
<input type="radio" name="AA[2]" value="2" />普通
<input type="radio" name="AA[2]" value="3" />高



<input type="submit" value="送信">
</form>

こんにちわ。
JavaScriptでメールフォームのラジオボタンが押印されているかチェックをしています。(全て押印されていないとアラートウィンドウでエラーコメントを表示する。その後数字の正規表現チェックをする予定)
ラジオボタンの「name」は後ほどPHPで連想配列として使用するのでこのような形にしています。
多次元配列の押印チェックとチェックした値の取り出しが出来ません。(例:AA[1]、AA[2]のチェック確認とチェックされた値の取得。取得した値は10個目の配列にひとまず格納したいAA[1][10]、AA[2][...続きを読む

Aベストアンサー

javascriptではnameにカッコをつけても当然配列としてみなされません
formの要素であればelementsとしてnameでアクセスできます

document.formSample.AA[2].checked

そもそもAA[2]のどの要素のcheckedを見ているのか不明
要素ごとにチェックをするのでたとえばこう

document.forms['formSample'].elements['AA[2]'][0].checked
・・・AA[2]という要素群の0番目の要素のcheckedをみる

できればformにもidを振って、document.getElementById()でアクセスした方が確実

Qhighslide JSのポップアップ表示について

初めまして、よろしくお願いします。

「highslide JS」について分からない事がありますので質問させて頂きました。

現在ホームページを作成していて、
トップページにインラインフレームを設置し、
インラインフレーム内に写真を数枚表示させています。

インラインフレーム内の写真のポップアップ表示をするため、
「highslide JS」を使っているのですが、写真をクリックし拡大表示させると、
写真がインラインフレームの枠のサイズより大きいため、
自動的にインラインフレームに合わせたサイズに写真が縮小され表示されてしまいます。
また、拡大表示された後、ドラッグして移動させると写真が切れてしまいます。

サイズの方は、写真を小さくすれば解決するのですが(本当は写真を小さくしたくありません…)、
拡大表示された後の、ドラッグして移動させると写真が切れて表示されるのは解決できません。

そこで「highslide JS」のサイトを調べて、
FAQのhttp://vikjavev.no/highslide/forum/viewtopic.php?t=1351の
http://vikjavev.no/highslide/example-inside-iframe.htmlを見つけました。

http://vikjavev.no/highslide/example-inside-iframe.htmlのページもインラインフレーム使用し、
その中に写真を表示させているようなのですが、
写真をクリックすると、インラインフレームのサイズよりも写真のサイズが大きいのにもかかわらず、
インラインフレームを飛び出したような感じで表示されています。

文章が分かりずらくてすみません…。

整理しますと、トップページのインラインフレーム内の写真をクリックし、
ポップアップ表示を親ウィンドウに表示させたいのです。

このように表示させるにはどのようにしたら良いでしょうか?
また、可能なのでしょうか?

最後に、「highslide JS」の設置は、
http://www.kfstudio.net/blog/archives/910mt/20070126164154.phpのサイトを参考に、
JavaScriptソースやHTMLソースをコピペでなんとか設置できました。
JavaScriptはあまり詳しくありません。

長くなりましたが、JavaScriptに詳しい方、どうぞよろしくお願いいたします。

初めまして、よろしくお願いします。

「highslide JS」について分からない事がありますので質問させて頂きました。

現在ホームページを作成していて、
トップページにインラインフレームを設置し、
インラインフレーム内に写真を数枚表示させています。

インラインフレーム内の写真のポップアップ表示をするため、
「highslide JS」を使っているのですが、写真をクリックし拡大表示させると、
写真がインラインフレームの枠のサイズより大きいため、
自動的にインラインフレームに合わせたサイズに...続きを読む

Aベストアンサー

ソースを見てないので解りませんが、インラインフレーム上で表示させるのではなく、親の方のHTML上で拡大⇒縮小などをしてあげるといいのではないでしょうか。

1.クリック
2.でかい画像を読み込み
3.元画像の絶対座標を取得
4.でかい画像を元画像と同じ大きさで3の座標にappend
5.setTimeoutなどでwidth heightを大きく、x yをwidth heightの半分だけ小さくする
6.実サイズまで拡大

多分こんな処理の流れになってるんだと思うので、4の部分のappendを親のwindowにしてあげればいいんじゃないでしょうか。
クロスドメインになっていると難しいと思いますが。

縮小は逆の流れですね。

Q外部JSファイルでポップアップウインドウを開くには?

ウェブサイト内の複数ページからJavaScriptで「クリックするとサイズを指定したポップアップウィンドウが開く」ようにしています。
(ポップアップウィンドウ内に開くファイルは全て同じです。)

しかしこのポップアップウィンドウ、情報量が変わるたびに高さを変更する必要があり、更新がとても煩雑です。
そこで、このJavaScriptを外部ファイルにして、開くウィンドウの高さの変更を、容易にしたいと思っています。

Dreamweaver8を使用していますので、ライブラリを使えば良いのかと思ったのですが、クリックする対象が、ページによってテキストだったり、ボタンだったり、バナーだったりとばらばらなので、無理そうです。

色々なサイトやこのサイトのページも調べてみましたが、どうしてもやり方がわかりません。
どなたか教えていただけませんでしょうか。

現在HTML内に書いてあるJavaScriptは

<a href="javascript:;" onclick="MM_openBrWindow('ファイル名.html','','width=750,height=500')">クリックする対象</a>

で、height=の数字を頻繁に変える必要があり、大変わずらわしいのです。
どうぞよろしくお願いします。

ウェブサイト内の複数ページからJavaScriptで「クリックするとサイズを指定したポップアップウィンドウが開く」ようにしています。
(ポップアップウィンドウ内に開くファイルは全て同じです。)

しかしこのポップアップウィンドウ、情報量が変わるたびに高さを変更する必要があり、更新がとても煩雑です。
そこで、このJavaScriptを外部ファイルにして、開くウィンドウの高さの変更を、容易にしたいと思っています。

Dreamweaver8を使用していますので、ライブラリを使えば良いのかと思ったのですが、ク...続きを読む

Aベストアンサー

タブブラウザにはサイズ指定のポップアップを無視して別のタブに表示するだけってオプションもあるので、
最近~これからは余計な苦労してサイズ指定にこだわるのもあんまり意味ないと思います。通常のリンクに切り替えては?


一応、書くと
<a href="javascript:;" onclick="winopen()">クリックする対象</a>

--外部javascript--
function winopen(){
window.open('url','ウィンドウ名','width=xxx,height=yyy,scrollbars=yes,resizable=yes');
}

・ウィンドウ名には適当な名前をつけてください。
(同じウィンドウが複数開くのを防ぎます)

QJSで配列同士の重複チェック

いつもお世話になっております表題の通りJSで配列同士(連想配列の値)で重複した値があったらまとめて再度配列に格納したいのですが、プログラムの書き方が思いつきません、、
教えて頂けないでしょうか??

例、イメージ)
配列A = 配列B[key1=>1,key2=>2],配列C[key1=>1,key2=>2],配列D[key1=>2,Key2=>4];

この場合処理をして返ってくる期待値は

配列A[配列B[key1=>1,key2=>2],配列D[key1=>2,key2=>4]]
※配列Cは配列Bと中身が同じなため削除された

という形で帰ってきてほしいです。

少し時間が無くて完成されたサンプルコードなど教えて頂けると幸いです
どうぞよろしくお願いします!

Aベストアンサー

// JS1.6 or ES5 or IE9
function uniq(a) {
var compare = function(x,y){ for (var i in x) if (x[i] !== y[i]) return false; return true };
var makeCondition = function(o){return function(x){return compare(x,o) && compare(o,x)}};
var callback = function(p,c){if (!p.some(makeCondition(c))) p.push(c); return p};
return a.reduce(callback, []);
}

重複がまとめられた配列A = uniq(配列A);


人気Q&Aランキング

おすすめ情報