отправка HTML-формы - JavaScript не отправляет кнопку ввода - PullRequest
0 голосов
/ 15 июля 2011

Вот проблема: у меня есть простая форма с тремя кнопками и некоторыми скрытыми полями ввода. В зависимости от нажатой кнопки (разные значения name = ""), действие выполняет что-то другое.
Сейчас я пытаюсь добавить диалоговое окно подтверждения в эту форму, выполнив следующее:

<form method="POST" action="/action" onsubmit="return confirmFormSubmit(this);">
    <input type="submit" name="one" value="This">
    <input type="submit" name="two" value="That">
    <input type="submit" name="three" value="Something else">
</form>

<script type="text/javascript">
function confirmFormSubmit(obj)
{
    window.event.preventDefault();
    jConfirm('Are you sure you want to do this?', 'Awaiting confirmation', function(r) {
        if (r == true) {
            obj.form.submit();
        } else {
            return false;
        }
    });
}
</script>

Когда я нажимаю кнопку ОК, действие происходит, но кнопка ввода не отправляется.
Выполнение 'document.location = obj.form.action;' не вариант, потому что это не будет передавать параметры POST.

Как я могу заставить эту чертову штуку отправлять поля ввода, а не просто вызывать действие?

Ответы [ 2 ]

0 голосов
/ 15 июля 2011
<form method="POST" action="/action">
    <a href="javascript: confirmFormSubmit(this)">
        <input type="button" name="three" value="Something else">
    </a>
</form>

что-то вроде этого должно работать

0 голосов
/ 15 июля 2011

Я думаю, это потому, что метод onsumit переопределяет действие в объявлении вашей формы. Я бы на самом деле изменил кнопку формы и сделал ее кнопкой, связанной с методом javascript, который выполняет необходимые тесты и передает значения правильному действию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...