• ベストアンサー

【FORM】 リンク文字で submit したい

<FORM METHOD="post" ACTION="tbl_admin.html"> <A HREF="#" onClick="fnc.value='abc'; this.form.submit();">リンク文字</A><BR><BR> <INPUT TYPE="hidden" NAME="fnc" VALUE=""> <INPUT TYPE="submit" VALUE="aaa"> </FORM> と書いてみたのですが エラー:'this.form' は Null またはオブジェクトではありません。 としまいました。 <SELECT>のonChangeで同じような事は出来たのですが、 単なるリンク文字クリックでこのようなことはできないのでしょうか。 可否をご存知の方、また実現方法等ご存知の方 いらっしゃいましたらご教示願います。 よろしくお願い致します。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1さんの補足ですが、アンカー(a)要素はformの中に入れても 従属関係にはないので上位のformにアクセスすることはできません。 #1さんの解説ではformにformという名前をつけていますが、 場合によっては名前の競合が発生するのでなるべくタグ名と 同じ名前を使わない方がよいでしょう。 また、allでアクセスするのはあまりお勧めできませんので、 やるならdocument.forms[フォーム名]もしくはdocument.フォーム名 でやるか、nameではなくidをつかってdocument.getElementById(id名) でやるとよいでしょう。 <FORM METHOD="post" ACTION="tbl_admin.html" name="form1"> <A HREF="#" onClick="f=document.form1;f.fnc.value='abc'; f.submit();">リンク文字</A><BR><BR> <INPUT TYPE="hidden" NAME="fnc" VALUE=""> <INPUT TYPE="submit" VALUE="aaa"> </FORM>

Claudia
質問者

補足

なるほど、アンカーはFORMとの従属関係がないから フォームを動かすには外からの場合と同様に 明示的に示さなくてはならないのですね。 勉強になりました。

その他の回答 (1)

回答No.1

エラーの内容からすると「エラー:'this.form' は Null またはオブジェクトではありません。」 ですから、formオブジェクトがちゃんと認識できていないみたいです。 そこで二つ対処をしました。 1)formにnameを付けてdocument.all(フォーム名)でオブジェクトを特定した。 2)<a></a>タグのonclickからなにも返却しないと、hrefパラメータの箇所へ遷移するので、   onclickイベントの戻り値をfalseにした。 サンプルとしては以下です。 ------------- LinkSubmit.html ----------------- <html> <head> <title>リンクサブミットHTML</title> <script language=javascript> </script> </head> <body> <form name=form method="POST" action="./event.html"> <!--<a href='' onclick="fnc.value='abc'; this.form.submit();">リンク文字</a><br><br>--> <a href='#' onclick="document.all('form').fnc.value='abc'; document.all('form').submit();return false;">リンク文字</a><br><br> <input type="hidden" name="fnc" value=""> <input type="submit" value="aaa"> </form> </body> </html> ≪質問は受付中のままにしないで必ず締め切りましょう≫

Claudia
質問者

補足

FORMに名前をつけてフォーム名から指定したら思うように動きました。 いつもフォームの外から弄る時はフォーム名をつけて、 フォーム内でしか弄らないときはフォーム名をつけていなかったもので。。 ありがとうございました。

関連するQ&A

  • 1つのformに2つのsubmitボタン

    を配置した場合 受け取ったPerlは その2つのどちらが押されたかを知ることができるのでしょうか? その場合どうしたら言いのでしょうか? <form method='post' action='http://perl/x.pl'> <input type='submit'/><br/> <input type='submit'/><br/> <input type='text' name='data'/> </form> で第1のサブミットが押されたときには dataを大文字で表示し 第2のサブミットが押されたときには dataを小文字で表示したいのです

    • ベストアンサー
    • CGI
  • FORM1つでリンク

    いつもお世話になっております。 既にある質問も調べてみたのですが <form name="top" method="post" action="xxx.cgi"> <input type = "hidden" name="data" value="open"> <a href="#" onClick="submit();">オープン</a> <input type = "hidden" name="data" value="close"> <a href="#" onClick="submit();">クローズ</a> </form> FORMを1つで、hrefのリンクみたいにして違う値を 送信したいのですが、上記だと 二つ目のリンクが上手く出来ません。 どなたかお知恵をお貸し下さい

  • VBAでIEを操作submit処理について

    ExcelVBAでIEを操作する処理について勉強中です。 formで、nameが定義されておらず、submitが複数(4つ)ある場合です。 HTMLが下記記載の場合で、submit”A”をクリックしたいです。 <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="A"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="B"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="C"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="D"></td></form> VBAでのsubmitの記述を下記で試してみたのですが、うまくクリックできません。 ObjIE.document.forms(0).Action = "XXXX/admin.cgi" ObjIE.document.forms(0).submit どのように変えたらよいのでしょうか。。。 ご教授お願い致します。

  • FORMの値を返す方法です。

    こんにちは。質問させてください。 フォームを作成したのですが思うような値を得られませんでした。チェックボックスA~Eの中で、たとえばAとCにチェックをいれて送信すると受信側に返される値は 「selection=A&selection=C&submit=~」となるのですが、これを 「selection=A,C&submit=~」というようにselection=を一つにまとめてカンマで区切って表示できたらと思っています。 どうかご存知の方がいらっしゃいましたら、教えてください。よろしくお願いします。 ------以下のように作成しました---------- <form method="post" action="mailto:@.ne.jp"> <br>選択<br> <input type="checkbox" name="selection" value="A">A<br> <input type="checkbox" name="selection" value="B">B<br> <input type="checkbox" name="selection" value="C">C<br> <input type="checkbox" name="selection" value="D">D<br> <input type="checkbox" name="selection" value="E">E<br> <input type="submit" name="Submit" value="送信"> <input type="reset" name="Submit2" value="リセット"> </form>

  • 2つのsubmitボタンがあるときに

    最初に書いたボタンが優先され 単にリターンキーを押したときに 最初のsubmitボタンが反応します。 後のsubmitボタンが反応するようにするにはどうしたらいいのでしょうか? つまり下記のPHPをブラウザに表示させているときにリターンキーを押したときには submit2 is pushed. と表示させるにはどうしたらいいのでしょうか? <form method="post" action="<?=$PHP_SELF?>"> <input type="text"/><br/> <input type="checkbox"/><br/> <input type="radio" name="radio"/><br/> <input type="submit" name="submit" value="submit1" tabindex=-1/><br/> <input type="submit" name="submit" value="submit2" tabindex=1/><br/> </form> <?php if(isset($_POST['submit'])) { echo$_POST['submit'].' is pushed.'; } ?>

    • ベストアンサー
    • PHP
  • form 内 onChange

    恐れいります。 <form>内で、もう一つ<form>を作成し、送信したいのですが、 なかなかうまくいきません。form内のformは、selectボックスで、選択時に自ページにsubmitさせるようにしたいのですが。。 <form action="./xxx.cgi" method="POST"> <input type="text" name="xxx"> <form action="./" method="POST"> <select name="YYY" onChange="this.form.submit()"> <option value="ddd">ddd <option value="eee">eee </select></form> <input type="text" name="xxx"> <input type="submit" value="送信"> </form> よろしくお願いします。

    • ベストアンサー
    • HTML
  • <FORM> </FORM> の中に さらに <FORM> </FORM>があるときの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がいいのです。

    • ベストアンサー
    • HTML
  • form内からリンクを使用したいのですが。。。

    いつもお世話になっております。 strutsを使用して、画面遷移を行おうとしています。 form内からボタンを使用してなら、リンクを行うことは出来るのですが、普通のリンク(HTMLだとA HREF)で表示させたいのですが、うまくいかず、WEBでも見つけることが出来なかったので、質問いたしました。 下記ソースです。 <html:form action="/category"> <html:submit property="submit"><%=strC_name%></html:submit> <input type="hidden" name="c_no" value="<%=numC_no%>"> <input type="hidden" name="c_name" value="<%=strC_name%>"> </html:form> どなたか解決方法が分かる方、ご教授願います。

  • submit

    例えば <form method="get" action="このページ自身"> <select name="type"> <option value="myA" selected>A</option> <option value="myB">B</option> <option value="myC">C</option> </select> <input type="submit" name="sbm" value="GO" /> となっていて これを onchange を用いて選択が変わったときに submit ボタンを自動で押したいのです。なおかつ submit ボタンを最初から隠したいのです。 誰か教えてください。

  • onClick="this.form.submit

    ・下記のようなformがあるのですが、 onClick="this.form.submit();" disabledの意味を教えてください ・クリックしたら、このフォーム内容を送信? ・アクション先も指定していないのに、処理はどこへいくのでしょうか? ・また、disabledは? ずっと押せない? <form name="hoge" method="POST"> <input name="hoge" type="button" class="button" value="piyo" onClick="this.form.submit();" disabled> </form>

専門家に質問してみよう