Onsubmit не работает в Chrome - PullRequest
       21

Onsubmit не работает в Chrome

1 голос
/ 23 февраля 2011

У меня есть две формы и кнопка. Все отлично работает в Firefox. Я получаю новое окно, с оплатой Paypal, и в окне, где все произошло, я получаю отправленную форму send_mail, которая отправит пользователю электронное письмо. Как я могу заставить это работать в Chrome? Почему это не работает? Я пытался что-нибудь (или я так думаю)!

Итак:

<form name="registerForm" id="registerForm" target="_blank" action="paypal_url" method="post" onsubmit="$('#send_mail').submit();">
...
</form>

<form name="send_mail" id="send_mail" action="" method="post">
...
</form>

<a onclick="$('#registerForm').submit()">Go to paypal and send confirmation mail</a>

Ответы [ 3 ]

4 голосов
/ 23 февраля 2011

Если у вас нет действительно веской причины использовать отправку только для javascript, зачем настраивать форму, чтобы ее нельзя было использовать в случае ошибки javascript?

Используйте стандартный ввод формы типа submit, присвойте ему идентификатор, при необходимости измените внешний вид или текст отправки с помощью javascript и создайте события onclick & onsubmit в качестве слоя поверх этой функциональности, чтобы они возвращали false. Лучшие запасные варианты.

Я не уверен, почему вы пытаетесь отправить две формы одновременно, но как насчет этой альтернативы (обратите внимание, что я не тестировал этот код, но он должен передать идею):

<script type='text/javascript'>
$('#fallback-register-submit').hide(); // Hide the submit button.
$('#registration-link').show().click(function (){ // Show the link and attach the action.
    $('#registerForm').submit();
    return false; // Don't bother following the link anchor.
});
</script>

<form name="registerForm" id="registerForm" target="_blank" action="paypal_url" method="post""><!-- Single form that does all of the submitting. -->
...
...
<input type='submit' id='fallback-register-submit'>Register</input><!-- In the event of a javascript error for their browser, they can still buy your stuff! -->
<a id='registration-submit' style='display:none'>Go to paypal and send confirmation mail</a>
</form>
2 голосов
/ 23 февраля 2011

почему бы просто не связать оба представления с вашим a?

onclick="$('#send_mail').submit(); $('#registerForm').submit();"

, если вы хотите, чтобы другая форма отправляла ПОСЛЕ первой:

onclick="$('#send_mail').submit( function() {$('#registerForm').submit();}); "

при условии, что вы используете здесь jquery

1 голос
/ 23 февраля 2011

Насколько я понимаю, вы хотите отправить форму, используя ссылку?

Почему бы тогда не использовать "простой" javascript?Без jQuery: document.getElementById(....).submit()

Или связать событие отправки со ссылкой обычным способом jQuery: $(document).ready(function() { $(".yourLinkClass").click(function() { // or "#yourLinkId" for that matter $("#registerForm").submit(); }); });

И вы также можете использовать кнопку отправки;)

...