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



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Никогда не используйте document.nameofsomething. Это устаревший метод, который периодически поддерживается в браузерах 21 века. Для форм используйте document.forms.nameofform.
Не используйте кнопки onclick, если вам не нужно, чтобы Javascript вел себя по-разному в зависимости от того, какая кнопка была нажата. Если вы просто хотите проверить форму или подтвердить отправку, используйте вместо этого <form onsubmit>.
<form onsubmit = "return confirm('Sure?')">
И таким образом вам даже не понадобится form.submit(). Если <form onsubmit> вернет false, отправка будет прервана.
Вам даже не нужно искать эту форму.
В форме <button onclick> будет this.form.
В форме <form onsubmit> будет находиться в переменной this.
@porneL: Спасибо за советы. Что касается вашего второго пункта, я использую события onclick только потому, что хочу, чтобы поведение отличалось в зависимости от нажатой кнопки. Для краткости я опустил код, в котором используется параметр, переданный функции JavaScript.
Вы все еще получаете подсказки? с подтверждением