JQuery отправить обходной путь - PullRequest
3 голосов
/ 27 июля 2010

Я нашел что-то интересное в jQuery, и я хотел, чтобы некоторые люди, которые понимают это лучше меня, хотели посмотреть, есть ли решение для этого. Поэтому я хочу опубликовать позицию прокрутки страницы при отправке всех форм на моей странице. Я могу сделать это, выполнив следующие действия:

$('form').submit(function() {
    $(this).append('<input type="hidden" name="scroll_position" value="' + $(document).scrollTop() + '" />');
    return true;
}

Это работает, как и ожидалось, когда пользователь нажимает или нажимает кнопку ввода на кнопке отправки, но бывают случаи, когда я запускаю событие .submit (). Пример этого:

$('button').click(function() {
    ...
    // Doing something special here
    ...
    $(this).parents('form')[0].submit();
}

Как бы я мог заставить свой пользовательский обратный вызов отправки вызываться всякий раз, когда страница отправляется, независимо от того, инициируется ли она вызовом .submit () или пользователем, отправляющим форму?

Ответы [ 4 ]

3 голосов
/ 27 июля 2010

Нет необходимости создавать новую функцию, если вы не хотите.Вам просто нужно использовать jquery .submit(), и ваша работа завершена.Проверьте разницу.

$('button').click(function() {
    ...
    // Doing something special here
    ...
    var form = $(this).parents('form')[0];
    $(form).submit();
}

Happy Coding.

1 голос
/ 27 июля 2010
function myFrmSubmit(){
    $(this).append('<input type="hidden" name="scroll_position" value="' + $(document).scrollTop() + '" />');
    return true;
}

$('form').submit(myFrmSubmit);
$('button').click(function() {
    ...
    // Doing something special here
    ...
    myFrmSubmit();
    $(this).parents('form')[0].submit();
}
1 голос
/ 27 июля 2010

Вы можете создать для этого функцию и вызвать ее перед отправкой:

function storePosition(){
  $('form').append('<input type="hidden" name="scroll_position" value="' + $(document).scrollTop() + '" />');
}

Позже вы можете сделать:

$('form').submit(function() {
    storePosition();
    return true;
}

Или:

$('button').click(function() {
    ...
    // Doing something special here
    ...

    storePosition();
    $(this).parents('form')[0].submit();
}
0 голосов
/ 28 июля 2010
...