人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptについて質問です。htmlのformのsubmitボタン(typeがsubmitのinput要素)のname属性に変更をかけてsubmitを行う、ということはjavascriptで実現可能でしょうか。もしできれば具体的にどう記述すればよいでしょうか。現在name属性値の違いによって複数のsubmitボタンによって制御を分けているページがあり、このsubmitボタンを画像にしなければならず、悩んでおります。フォームから送られる値を受け取る側のプログラムの変更は現実的に難しいです。

●質問者: kohei_april20
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:HTML JavaScript name プログラム ボタン
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● iketerummo
●26ポイント

憶測ですが、複数submitを配置したいということですよね?

<script language="JavaScript"></p> <p><!--</p> <p>function check(v) {</p> <p>if (v=='a') {</p> <p>//aの場合の処理</p> <p>document.a.para.value=v;</p> <p>document.a.submit();</p> <p>} else {</p> <p>//bの場合の処理</p> <p>document.b.para.value=v;</p> <p>document.b.submit();</p> <p>}</p> <p>}</p> <p>//--></p> <p></script>

<form name="a" method="post">

<input type="hidden" name="para">

<input type="submit" onClick="check('a')">

</form>

<form name="b" method="post">

<input type="hidden" name="para">

<input type="submit" onClick="check('b')">

</form>

これで受取り側は変更せず、para変数にaまたはbの値を受け取れます。onClickイベントの中でsubmitするので画像でも普通のボタンでも動きます。外してたらごめんなさいm(_ _)m

◎質問者からの返答

回答ありがとうございます。

ただ、フォームを複数にしないですむ方法を探しております。


2 ● WANT
●25ポイント

こんな感じで、ボタンによってコールするJavaScriptを変えて、

JavaScript内部で値を加工する...という方法はダメでしょうか?

もし、見当違いな回答でしたらスミマセン

HTML側

<form name="frmSample" method="POST">

<input type="text" name="txtSample">

</form>

<a href="javascript:a()"><img src="hoge1.jpg"></a>

<a href="javascript:b()"><img src="hoge2.jpg"></a>

JavaScript側

<SCRIPT language="JavaScript">

<!--

function a(){

document.frmSample.submit();

任意の処理1

}

function b(){

document.frmSample.submit();

任意の処理2

}

//-->

</SCRIPT>

◎質問者からの返答

回答ありがとうございます。

しかし現行のフォームから送信される値を維持しなければならないので、これだと難しそうです。


3 ● bonyan
●25ポイント

現状のHTMLと受け取る側のプログラムがどうなってるのかわからないので、想像でしか回答できないのですが、

HTMLが

<form action="hoge.cgi">

<input type="submit" name="abutton" value="Aボタン">

<input type="submit" name="bbutton" value="Bボタン">

</form>

で、受け取る側のプログラムで、abutton か bbutton の

変数の値(変数の有無?)がどうかで処理を分けてる、

という感じでしょうか?

>htmlのformのsubmitボタン(typeがsubmitのinput要素)のname属性に

>変更をかけてsubmitを行う、ということはjavascriptで実現可能でしょうか。

上記の方法はちょっと思いつかないのですが、

こんな感じでどうでしょう?

<form action="hoge.cgi" name="frm">

<input type="hidden" name="dummy" value="">

<a href="javascript:pushed('a');"><img src="a.jpg"></a>

<a href="javascript:pushed('b');"><img src="b.jpg"></a>

</form>

<SCRIPT language="JavaScript">

<!--

function pushed(buttonmei){

if (buttonmei=='a'){frm.dummy.value='Aボタン';frm.dummy.name='abutton'}

if (buttonmei=='b'){frm.dummy.value='Bボタン';frm.dummy.name='bbutton'}

frm.submit();

}

//-->

</SCRIPT>

ダミーの変数を設けて、押されたボタンの内容によって、値と名前を

変えてしまうという感じです。ちょっと強引な気もしますが。。

これで、受け取る側には前のHTMLと同じ情報が渡ると思います。

◎質問者からの返答

こんなことできるのですね!これで試してみたいと思います。ありがとうございます。

(追記)無事動きました。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ