10代と話して驚いたこと

一般的な検索画面で、中身はjavaで作っているのですが、

検索して結果が下に一覧で表示され、個々の結果ごとに「修正」「削除」ボタンを作っております。
結果1つを1formとして囲っておりまして、hiddenに一意に識別できるパラメータをvalueを入れて飛ばして、その結果情報を修正できたり削除できたりする機能を作っております。
修正ボタンをクリックした場合と削除ボタンをクリックした場合で呼ばれるServletが異なるのですが、うまくJavascriptを書けておりません。
以下はソースです。ちなみにこの要素の上に検索ボタンがあり、現在の挙動だとなぜか検索条件入力フォームチェック用のJSが呼ばれてしまっております。FireFoxのプラグインに表示されるエラーには何もでませんでした。

*****JSP(view)側*****
<form method="post" onSubmit="return callServlet(this)" id="mstSearchR" name="mstSearchR">
<input type="hidden" id="mdNoH" name="mdNoH" value="???????" /><br>
<input type="submit" id="modify" name="modify" value=" 変更 " /> <input type="submit" id="delete" name="delete" value=" 削除 " />
</form>

*****JS側*****
function callServlet(caller){
caller.modify.onsubmit = function(){
flagD = this.form.modify.disabled;
flag = confirm("修正しますか?");
if(flag == true){
flagD = !flagD;
this.form.modify.disabled = flagD;
this.form.action = "????????????????"
return true;
}
return false;
}

caller.delete.onsubmit = function(){
flagD = this.form.delete.disabled;
flag = confirm("削除しますか?");
if(flag == true){
flagD = !flagD;
this.form.delete.disabled = flagD;
this.form.action = "!!!!!!!!!!!!!!!!"
return true;
}
return false;
}
}

A 回答 (2件)

FormのonSubmitイベントではなく、Buttonのオンクリックイベントにしてはどうでしょうか。


submitを使うのではなくbutton属性に変えて、各Function内で
this.form.submit();
を実行してあげれば問題ないとおもいます。

---
<form method="post" id="mstSearchR" name="mstSearchR">
<input type="hidden" id="mdNoH" name="mdNoH" value="???????" /><br>
<input type="button" id="modify" name="modify" value=" 変更 " onSubmit="return callServlet(this)" /> 
<input type="button" id="delete" name="delete" value=" 削除 " onSubmit="return callServlet2(this)" />
</form>

--

この回答への補足

Mizyuさま

ご回答いただきありがとうございます。
buttonにしてonClickで引数をthis.formにして関数読んで、function内でsubmit()をしたら見事に仕様通り機能いたしました。
大変助かりました。ありがとうございました!

補足日時:2007/10/18 23:10
    • good
    • 0

input要素には、onsubmitイベントはないので、


modify/deleteにonsubmit関数を宣言しても意味はないですね。
あと、formのonsubmitイベントでこれらの宣言をしてるのも意味不明です。
なぜ、このようなコードになったのかが謎です。
どこからかコピってきたのでしょうが、使用方法が間違ってます。

また、ひとつのform内に複数のsubmit要素があるのも好ましくないですね。
こういう場合は、button要素にすべきです。

参考URL:http://w3g.jp/xhtml/dic/onreset

この回答への補足

texjoyさま

はい、たぶんコピペのままであったのだと存じます。
このコードは自分で勝手に書いてしまったものなので、スキルの低さが露呈した形になりました。

> また、ひとつのform内に複数のsubmit要素があるのも好ましくないですね。
> こういう場合は、button要素にすべきです。
こちら、今後肝に銘じてコーディングいたします。

ご回答いただき、誠にありがとうございます。

補足日時:2007/10/18 23:13
    • good
    • 0

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

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


おすすめ情報