0

以下に示す HTML フォームは、Opera (バージョン: 9.52) では期待どおりに機能しません。フォームには onsubmit 属性がなく、type=submit の入力要素もありません。type=button の 2 つの入力要素があり、両方の onclick が、ユーザーに送信を確認してもらいたい js メソッドを呼び出します。confirm() 呼び出しを削除すると、完全に正常に動作します。また、他のすべてのブラウザー (FF2、FF3、IE7) では正常に動作しています。

ポインタはありますか?

<script type = "text/javascript">
function userSubmit(submitStatus)
{
    // Omitted code that uses the parameter 'submitStatus' for brevity
    if(confirm('Are you sure you want to submit?'))
        document.qpaper.pStatus.value = something;
    else
        return;     
    document.qpaper.submit();
}
</script>
<form  name = "qpaper" method = "post" action = "evaluate.page">
    <input name = "inp1" type = "button" value = "Do This" class = "formbutton" onClick = "userSubmit(false)">
    <input name = "inp2" type = "button" value = "Do That" class = "formbutton" onClick = "userSubmit(true)">
</form>
4

1 に答える 1

2
  1. 絶対に使用しないでくださいdocument.nameofsomething。これは時代遅れの手法であり、21 世紀のブラウザーではまだサポートされていません。フォームにはdocument.forms.nameofform.

  2. 押されたボタンに応じて Javascript の動作を変える必要がない限り、ボタンに onclick を使用しないでください。フォームの検証または送信の確認のみが必要な場合は、<form onsubmit>代わりに使用してください。

    <form onsubmit="return confirm('Sure?')">
    

    そして、この方法では必要さえありませんform.submit()<form onsubmit>false を返す場合、送信は中止されます。

  3. そのフォームを見つける必要さえありません。形になり
    ます。形式は変数になり ます。<button onclick>this.form
    <form onsubmit>this

于 2008-11-27T12:49:40.793 に答える