Lonely Dreamer (sanmai) wrote,
Lonely Dreamer
sanmai

Category:

onsubmit jQuery override

Если у нас есть форма с переназначенным onsubmit:
<form onsubmit="return validate();">
То, для того чтобы результат выполнения функции validate(); учитывался при отправке через скрипт, нужно переназначить её на новый лад:

$('input[type=button]').bind("click", function() {
	var $form = $(this).closest("form");
	
	if ($form[0].onsubmit) {
		// сохраняем старый onsubmit
		var prevSubmit = $form[0].onsubmit;
		// отключаем его
		$form[0].onsubmit = null;
		$form.submit(function() {
			// вызываем в контексте
			return prevSubmit.call(this);
		});
	}

	// отправляем форму
	$form.submit();
});

Если так не делать, то при $form.submit(); функция validate(); будет выполняться, но возвращаемый ею результат никакого влияния оказывать не будет. Форма будет отправляться на сервер всегда.
Tags: javascript, jquery, useful
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments