Отправка HTML-формы в Opera - PullRequest
       20

Отправка HTML-формы в Opera

0 голосов
/ 27 ноября 2008

HTML-форма, показанная ниже, не работает должным образом в Opera (Версия: 9.52). Форма не имеет атрибута onsubmit и не имеет элемента ввода с типом = submit. Он просто имеет два элемента ввода type = button, и оба они onclick вызывают метод js, где я хочу, чтобы пользователь подтвердил отправку. Если я удаляю запрос на подтверждение (), он работает отлично. И во всех других браузерах (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>

1 Ответ

2 голосов
/ 27 ноября 2008
  1. Никогда не используйте document.nameofsomething. Это устаревшая техника, которая имеет неоднозначную поддержку в браузерах 21-го века. Для форм используйте document.forms.nameofform.

  2. Не используйте onclick на кнопках, если вам не нужен Javascript, который будет вести себя по-разному в зависимости от того, какая кнопка была нажата. Если вы просто хотите проверить форму или подтвердить отправку, используйте вместо нее <form onsubmit>.

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

    И таким образом вам даже не нужно form.submit(). Если <form onsubmit> вернет false, отправка будет прервана.

  3. Вам даже не нужно искать эту форму.
    В <button onclick> форма будет this.form.
    В <form onsubmit> форма будет в this переменной.

...