Поместите ваш код onClick в ту же функцию, что и код onSumbit.
UPDATE
В конце вашего onClick
кода, который вы return false;
, это останавливает нормальное распространение событий и останавливает запуск события onSubmit
. Поэтому, если вы хотите, чтобы кнопка отправки отправила форму, удалите return false;
из ее обработчика onClick
.
Когда вы нажимаете кнопку отправки, вы запускаете событие click
для кнопки и событие submit
в форме, в которую вложена кнопка (если вы не остановите распространение событий с чем-то вроде return false;
) .
Так что вам действительно нужен только обработчик событий submit
, который выполняет работу обоих ваших текущих обработчиков.
Кроме того, так как кажется, что у вас есть jQuery Core, включенный в вашу страницу, вы можете прикрепить обработчики событий следующим образом:
$(function () {
$('#form-id').on('submit', function () {
var $this = $(this);//$this refers to the form that is being submitted
jQuery.facebox({
ajax : 'wishlist.php?emailme=true&name=' + $this.find('#name').val() + '&country=' + $this.find('#country').val() + '&email=' + $this.find('#email').val() + '&department=' + $this.find('#department').val()
});
//now we run your normal onSubmit code and return it's return value of this event handler
return formCheck(this);
});
});
Если вы отправляете всю форму в функцию jQuery.facebox
, то вы можете использовать функцию .serialize()
jQuery для создания необходимой строки запроса:
$(function () {
$('#form-id').on('submit', function () {
jQuery.facebox({
ajax : 'wishlist.php?' + $(this).serialize()
});
return formCheck(this);
});
});
Вот демоверсия: http://jsfiddle.net/vAFfj/
Документы для .serialize()
: http://api.jquery.com/serialize
Обратите внимание, что .on()
является новым в jQuery 1.7 и в этом случае совпадает с .bind()
более старых версий.
UPDATE
Если вы хотите проверить возвращаемое значение из функции formCheck()
перед запуском плагина facebox
, вы можете сделать это:
$(function () {
$('#form-id').on('submit', function () {
//check if the form data is valid
if (formCheck(this) === true) {
//if the form data is valid then run the facebox plugin
jQuery.facebox({
ajax : 'wishlist.php?' + $(this).serialize()
});
//also return true to stop running this function
return true;
}
//if the form data is not valid then return false to stop the submission of the form
return false;
});
});