はじめまして初心者なものでどなたか分かる方いましたら、教えてください。今個人的にHPを作成しているのですが、質問画面を作成したいと思っています。

内容的にはcheckboxを10個設置し、0~3、4~5、6~7、8以上という形でチェックした場合それぞれ、オープンウインドウで別なhtmlファイルを呼び出したいのですが。IE5.0では問題なく動作するのですが、NNでは4.7、6.0ともに別ウインドウが表示されません。

※質問ボタンを画像に変更しようとしています。画像にせずブラウザデフォルトだとNNでも動作しました。(↓のような形で作成しようとしています。)
<input name="button" onClick="startfunc(this.form)" type="image" src="image/button_01-2.gif" width="90" height="21" alt="質問" border="0">

実は下記のページの真中くらいにあるものを使用し、チェックボタンを画像に変更して使用したいと考えております。
http://www.aby.co.jp/magazine/index.html
できましたらアドバイスよろしくお願いいたします。

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

A 回答 (1件)

NN で動作しないのは、INPUT type="image" の onClick が、NN ではサポートされていないからです。


ですので、どちらでもサポートされている、FORM の onSubmit を使うようにしましょう。
(通常、送信時の前処理は、送信ボタンの onClick ではなく、こちらで行います。)

<FORM … onSubmit="startfunc(this)">  # this.formではなく、thisになる。
<INPUT type="image" …>   # onClick="~" は削除する。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。おかげ様でうまくいきました。
今回は急ぎだった為、本当に助かりました。
自分でも時間をみてjavascriptをもっと勉強したいと思います。
今回はありがとうございました。

お礼日時:2002/02/26 14:39

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qでボタンを押したときの処理

ボタンをクリックしたらalertによって下記のような文字列、trueかfalseを返すようにしたいのです。

fulction hantei(){

if(str.length > 6){
document.write("true")
}
else{
document.write("false")
}
}

あと、functionにはdocument.writeが使えないようなのですが、そうならばどのようにして表示させるのでしょう?

よろしくお願いします。

Aベストアンサー

"alertによって"の表現が、どうにでもとれます。
「警告ダイアログを表示させたい」という意味であれば、#1の方の説明の通りです。
画面上のどこか文字列を変更したいならば、document.all(ID) と innerHTMLを利用できます。ただしNetscapeでは、4.x系も、7.x系も効きません。Opera、Firefoxを有効なようですね。

以下にサンプル

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>てすと</title>
<script type="text/javascript">
<!--
function func(message)
{
 var targetItem = document.all("alertTarget");
 targetItem.innerHTML = message;
}
// -->
</script>
</head>
<body>
<form target=".">
<span id="alertTarget"></span><br>
<input type="button" value="alert A" onclick="func('aaaa')">
<input type="button" value="alert B" onclick="func('bbbb')">
</form>
</body>
</html>

"alertによって"の表現が、どうにでもとれます。
「警告ダイアログを表示させたい」という意味であれば、#1の方の説明の通りです。
画面上のどこか文字列を変更したいならば、document.all(ID) と innerHTMLを利用できます。ただしNetscapeでは、4.x系も、7.x系も効きません。Opera、Firefoxを有効なようですね。

以下にサンプル

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<me...続きを読む

QNN4とNN6でのレイヤーの表示・非表示

WINとMACでNN4とNN6でのレイヤーの表示・非表示を制御する、そんな都合の良いJavaScriptってありますか?
あったら教えて下さい!!

Aベストアンサー

以下は、私が使っていたものを、そのまま写しています。

function ShowMessage(mID){
if(document.all) document.all(mID).style.visibility = 'visible';
else if(document.layers) document.layers[mID].visibility = true;
else if(document.getElementById) document.getElementById(mID).style.visib
ility = 'visible';
}

function HideMessage(mID){
if(document.all) document.all(mID).style.visibility = 'hidden';
else if(document.layers) document.layers[mID].visibility = false;
else if(document.getElementById) document.getElementById(mID).style.visib
ility = 'hidden';
}

おわかりだとは思いますが、mIDは、各レイヤーのIDです。
引数にして渡してやってください。

ちなみに、Netscape6.0以降は、document.layersはFALSEになってしまいます。
そこで、document.getElementByIdを使うのですが、これはIE5.0以上でもTRUEになってしまいます。
(だから elseを使っているんですが)

Netscapeは、4.x以前と6.0以降でまったく別物になっているので、
同じ処理はほとんどの場合使えません。
むしろ、6.0はIE5.x以降にかなり近いです。

WINとMACの違いは、ブラウザの細かい仕様とバグに関わってくるので、
あんまり気にしても仕方がないような。。。

以下は、私が使っていたものを、そのまま写しています。

function ShowMessage(mID){
if(document.all) document.all(mID).style.visibility = 'visible';
else if(document.layers) document.layers[mID].visibility = true;
else if(document.getElementById) document.getElementById(mID).style.visib
ility = 'visible';
}

function HideMessage(mID){
if(document.all) document.all(mID).style.visibility = 'hidden';
else i...続きを読む

QonClick=による実行と、メソッド名を埋め込んで実行、の違い

例えば、

<input type="button" value="Click!" onClick="show()">

で、実行するのと、

<script type="text/javascript">
<!--
show();
-->
</script>

で、実行するのとでは、何か違いが出るのでしょうか?
コードの中で後者で実行したい(htmlを読み出した時にユーザのアクションなしで実行したい)のですが、前者では出来たのですが、同じ場所に後者のコードを書き込んでも動きませんでした。

よろしくお願いします。

Aベストアンサー

> htmlを読み出した時にユーザのアクションなしで実行したい

その為には、onLoad 処理中に書くのが普通です。

HTMLの途中に単に scriptタグでコードを書くとブラウザがそれを読み込んだ時点で実行されるので、HTML中のまだ読んでいない部分の参照等ができません。

Q

人気Q&Aランキング

おすすめ情報