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

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>

Вы все еще получаете подсказки? с подтверждением

Paul Whelan 27.11.2008 15:52

Да, я получаю подсказку. И ничего не происходит, когда я даю ОК.

Vijay Dev 27.11.2008 16:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
1 068
1

Ответы 1

  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.

@porneL: Спасибо за советы. Что касается вашего второго пункта, я использую события onclick только потому, что хочу, чтобы поведение отличалось в зависимости от нажатой кнопки. Для краткости я опустил код, в котором используется параметр, переданный функции JavaScript.

Vijay Dev 27.11.2008 16:11

Другие вопросы по теме