form タグに
オプションとして存在する target に関してです。

form method="POST" action="***.cgi" target="new"

と記述すればsubmit実行時に結果を別ウィンドウに転送します
ここまではいいのでが・・・・

submitボタンが複数ある場合(ボタンによって処理が違う)
ボタンによって、このボタンは新しいウィンドウを開くが、
このボタンは開かない(同一ウィンドウ内に結果表示する)
というように設定することはできますか?

CGIとJavaSCRIPTの利用は可能です。
やはり別の form を立てるしかないのでしょうか?
(cgiに渡す値が大量なため一つのformで実現したいとおもっています)

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

A 回答 (4件)

>新しいウィンドウは target="new" を使っています。


この場合、newという名前がついたwindowが新たに開かれますよね。
もう一度newをtargetとしたページを開いた場合、さっき開いたnewウィンドウに読み込まれます。
targetにはいくつか特別な値を入れることができます。
_blank  名前未設定の「新しい」ウィンドウを開きます。10回やれば10個新しいウィンドウが開きます。
_self   自分自身のウィンドウをターゲットとします。(フレームならフレーム)
_parent  フレーム構造の場合、自分自身の一つ上のフレームセットを解除してターゲットとします
_top   フレーム構造の場合、(階層が深くても)全部解除してターゲットとします。


>☆結果
>1.両方ともに新しいウィンドウが立ちあがります。
if文が間違っています。re=1という記述は代入ですので、条件判断としては・・・。

>2.buttonのvalue値が渡されません。
type="button"は送られないようですね。buttonの名前&値がほしい場合はNo.3の方が
かかれているようにsubmitにonClickを使う形になりますか。
この場合、ブラウザにJavaScriptの動作終了を待たずにsubmitしてしまうようなバグがあったらオワリなんですが・・・動くみたいなので大丈夫でしょう。

この回答への補足

>この場合、ブラウザにJavaScriptの動作終了を待たずにsubmitしてしまうようなバグがあったらオワリなんですが・・・

そうですね。このあたり不安が残ります。
これはブラウザの問題になるのでしょうか?
とりあえず動いたのでいいとさせて頂きます。
この点の問題が発生したらまた質問させていただきます。

みなさま ありがとうございました。

補足日時:2001/09/04 14:17
    • good
    • 0

はじめまして。


他の方の通りですが・・一応までに。

Javascriptによるtarget先設定で対応可能となります。

◇HTML
 例)
 <input type="submit" value="ボタン1" onClick="javascript:target_func(0)">
 <input type="submit" value="ボタン2" onClick="javascript:target_func(1)">

◇Javascript
function target_func( mode ) {
if( mode == 0 )
document.フォーム名.target="_top";
else
document.フォーム名.target="_blank";
return true;
}

上記の例では、
  ボタン1→現ブラウザのトップ
       ※現ページがフレームが切られているページでも、actionにて表示
        されるページが一面に表示される(_top)
  ボタン2→新しいウインドウを表示(_blank)

なお、これはIEでもNetscapeでも有効です。
※Windows で 5.5/4.7で確認済み

頑張って下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。

対応ブラウザの記述までしていただいて感謝感激です。

お礼日時:2001/09/04 14:24

formに名前は付けているんでしょうか?


もし付けているのでしたら、

document.フォームの名前.target="新しいターゲット先"
document.フォームの名前.submit();

で、実行可能です。
もしname属性を付けていないのであれば、配列として考えます。
formタグが一つしかなければ、

document.forms[0].target="新しいターゲット先"
document.forms[0].submit();

で、アクセス可能です。
配列の場合、0オリジンになりますので、複数formタグがある場合は、0から順番に数えてください。

この回答への補足

submitボタンに send(1), send(0) などを呼びだし
(onClickでいいのでしょうね?)
send() の引数(0 or 1)によって
terget の設定、ならびに
submit();
でできそうですね。
ありがとうございますやってみます。

補足日時:2001/09/04 12:59
    • good
    • 0

formのNAME属性はformsとして記述します。



複数のsubmitボタンというのを、buttonにして、JavaScriptを走らせ、
その中で
document.forms.target = "_self"
とか、
document.forms.target = "_blank"
とか指定してから
document.forms.submit()
したらいかがでしょう??

この回答への補足

_self というのは
今ひらかれているウィンドウの名前になるのでしょうか?
(SCRIPTを記述する側のウィンドウ)
新しいウィンドウは target="new" を使っています。

☆formを以下に変更
target="new"を削除

☆submitを以下に変更
input type="button" name="B1" value="送信" onClick="send(i)"
(i は 0か1 になります)

☆SCRIPT追加
function send(re)
{
if(re=1) document.forms[0].target="new";
if(re=0) document.forms[0].target="_self";
documet.forms[0].submit();
}

☆結果
1.両方ともに新しいウィンドウが立ちあがります。
2.buttonのvalue値が渡されません。
何が変なのでしょう??

補足日時:2001/09/04 13:27
    • good
    • 0
この回答へのお礼

1.は解消されました。
JAVASCRIPTのIF構文は
IF(a==B) のように "=="なのですね。

2.に関しては
相変わらず value値がわたりません。
やっぱり submitですればいいのでしょうか?

お礼日時:2001/09/04 14:02

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q
の中に さらに
があるときのSUBMITボタンについて

今、

<FORM ACTION="aaa.asp" METHOD="POST" Name="form1">
<input type="SUBMIT" value="ボタン1">

<FORM ACTION="bbb.asp" METHOD="POST" Name="form2">
<input type="SUBMIT" value="ボタン2">
</FORM>

</FORM>


としていて、ボタン2を押すとbbb.aspに
飛んでほしいのでに、aaa.aspに飛んでしまいます。
こういう場合どのようにすればよいのでしょうか?

それぞれのボタンは hidden の値をそれぞれの
フォームの中の値を渡したいので
どうしてもSubmitがいいのです。

Aベストアンサー

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAMPLE</title>
<meta http-equiv="Content-Type" content="text/html;charset=EUC-JP">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 英和辞書
function func1(form){
document.form1.MT.value =form.TXT.value;
document.form1.submit();
}
//*** サーチ
function func2(form){
document.form2.MT.value = form.TXT.value;
document.form2.submit();
}
//-->
</script>
</head>

<body>
<!---実際に画面表示されるフォーム--->
<form>
<input type="text" name="TXT" value="Congratulation" size="40"><br>
<input type="button" onClick="func1(this.form)" value="Eng-JP">
<input type="button" onClick="func2(this.form)" value="goo">
</form>

<!-- 辞書用の仮想フォーム -->
<form name="form1" method="GET"
action="http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi">
<input type="hidden" name="MT">
<input type="hidden" name="sw" value="0">
</form>

<!--- サーチ用の仮想フォーム --->
<form name="form2" method="GET"
action="http://search.goo.ne.jp/web.jsp">
<input type="hidden" name="MT">
</form>

</body>
</html>

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAM...続きを読む

Qformの中で別のactionをもったsubmitボタンの設置。

formの中で別のactionをもったsubmitボタンの設置。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>sample</title>
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 送信画面
function func1(form){
document.form1.text.value =form.text.value;
document.form1.file.value =form.file.value;
document.form1.dummy.value =form.dummy.value;
document.form1.submit();
}

//*** ユーザー追加画面
function func2(form){
document.form2.text.value =form.text.value;
document.form2.file.value =form.file.value;
document.form2.dummy.value =form.dummy.value;
document.form2.submit();
}
//-->
</script>
</head>
<body class="index">
<form enctype="multipart/form-data">
<table id="table" width="100%">
<tr><th width="10%">テキスト</th><td><input type="text" name="text">
<br />
<div style="text-align:left;">
<input type="button" onClick="func2(this.form)" value="テキスト確認">
</div>
</td></tr>
<tr><th width="10%">添付</th><td><input type="file" name="file"></td></tr>
</table>
<div style="text-align:left;">
<input type="button" onClick="func1(this.form)" value="確認">
</div>
</form>




<!-- sousin.php画面へ -->
<form method="post" name="form1" action="sousin.php" enctype="multipart/form-data">
<input type="hidden" name="text">
<input type="hidden" name="file">
<input type="hidden" name="dummy">
</form>

<!--- text.php画面へ --->
<form method="post" name="form2" action="text.php" enctype="multipart/form-data">
<input type="hidden" name="text">
<input type="hidden" name="file">
<input type="hidden" name="dummy">
</form>


</body>
</html>


上記のように記述し、フォームの中に別のactionをもったsubmitボタンを設置しました。
textの内容は渡せるのですが、添付したいファイルを渡すことができません。

添付ファイルも渡せるようにするにはどうすればよいのでしょうか

formの中で別のactionをもったsubmitボタンの設置。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>sample</title>
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 送信画面
function func1(form){
document.form1.text.value =form.text.value;
document.form1.file.value =form.file.value;
document.form1.dummy.value =form.dum...続きを読む

Aベストアンサー

すみません、補足の訂正です。

No.3さんのはtype="file"ではなくtype="hidden"でしたね。
申し訳ありませんでした。

あと、最近のブラウザでは、ファイル名は送信するけれども、
パスは送信しないような傾向になってきています。
だからパスが送られてくる前提のプログラムも今後は避けたほうがいいでしょう。
これもセキュリティ上の問題です。

Q[html]タグの参照ボタンを画像ボタンにした時のsubmitの方法

なにから書けばいいのか難しいのですが…
とりあえず、先日次のような質問をしました。
【[html] <input type="file">タグの参照ボタンを画像ボタンにしたい。】
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1244273

その中のやり取りにあるように、参照ボタンを画像にすることはできたのですが、実際に参照ボタンを画像にしてからsubmitすることができなくなってしまいました…

いろいろ調べてみましたら、どうやら<input type="file">をjavascript等でclickして値を入れると、セキュリティ上submitできないみたいなのです。実際そのフォームがsubmitに対して無反応になります。javascriptで強引にsubmitしようとすると"アクセスが拒否されました"のエラーがでます。

なんかごちゃごちゃになってきた…

今自分が実現したいのは、以下の2つです。
1.<input type="file">の参照ボタンを画像にしたい。
2.1を実現後そのformをsubmitしたい。

どなたか実現している方がいましたら、ご教授ください。
IE6で動けば問題ないです。

すみませんコードは文字制限に引っかかって載せれなかったです…

なにから書けばいいのか難しいのですが…
とりあえず、先日次のような質問をしました。
【[html] <input type="file">タグの参照ボタンを画像ボタンにしたい。】
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1244273

その中のやり取りにあるように、参照ボタンを画像にすることはできたのですが、実際に参照ボタンを画像にしてからsubmitすることができなくなってしまいました…

いろいろ調べてみましたら、どうやら<input type="file">をjavascript等でclickして値を入れると、セキュリティ上submitできな...続きを読む

Aベストアンサー

試してみたところ、submitはキャンセルされてtype="file"の入力内容がクリアされますね。
(クリアされた状態でもう一度submitボタンをクリックすると送信できる。)

私的にはセキュリティ強化としても厳し過ぎる気もしますが・・・今の時点で何か方法が見つかっても今後セキュリティホールとして塞がれてしまう可能性もあるので、諦めたほうがいいのかもしれません。

Qform targetで新しいウィンドウをたちあげてから元に戻れる?

こんにちわ,

今HTMLの学習をしています。
質問なんですが,たとえば,あるページ(hoge.html)が
<frameset cols=30%,70%>
<frame name="left" src="hogeleft.html">
<frame name="right"src="hogeright.html">
としておき,
そのhogeleft.htmlかhogeright.htmlの中で
<form action="hoge2.html" method="POST" target="other">';
とターゲットフレームネームにないものを指定することで新しいウィンドウでhoge2.htmlを立ち上げられますよね。
そのあと,hoge2.htmlからもとのウィンドウのほうの左フレームにhoge3.htmlを表示したいときはどうすればよろしいのでしょうか。
<form action="hoge3.html" method="POST" target="left">';
でいいのでしょうか。

よろしく回答お願いいたします。

こんにちわ,

今HTMLの学習をしています。
質問なんですが,たとえば,あるページ(hoge.html)が
<frameset cols=30%,70%>
<frame name="left" src="hogeleft.html">
<frame name="right"src="hogeright.html">
としておき,
そのhogeleft.htmlかhogeright.htmlの中で
<form action="hoge2.html" method="POST" target="other">';
とターゲットフレームネームにないものを指定することで新しいウィンドウでhoge2.htmlを立ち上げられますよね。
そのあと,hoge2.htmlからもとのウィンドウのほうの...続きを読む

Aベストアンサー

ご質問にあるように、ターゲットのフレームにフレーム名が与えられているのであれば、target属性でそのフレーム名を指定することで、form送信やリンクで指定したページをそのフレームに渡すことが出来ます。 おそらく、意図していることはJavaScriptを使わなくても、HTMLだけで実現できるでしょう。

リンク(a要素)やform要素などのtarget属性や、frame要素のname属性、JavaScriptのwindow.open()の第二引数で指定したウィンドウ名(ないしフレーム名)は、それが閉じられない限り、ブラウザの他のどのウィンドウ上でも、それをtarget指定することで、そのウィンドウ名(フレーム名)を持つウィンドウ(フレーム)に、目的のページを読み出すことが出来ます。

参考まで…

QTARGET=_blankと、

リンクに触れただけで、別ウインドウを開くには、どうしたら良いんでしょうか?
<a TARGET=_blank href=""onMouseOver="location.href='リンク先'"></a>
上は、どこが間違っているのでしょうか?
        

Aベストアンサー

<a href="" onMouseOver="window.open('リンク先')">ccc</a>
とかで良いのでは?

window.openについての詳細は書籍ネット等々で調べてください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報