Изменить данные перед отправкой формы - PullRequest
3 голосов
/ 23 декабря 2011

Я хочу иметь возможность шифровать текст в текстовом поле перед отправкой формы в facebook. Я попробовал подключить плагин ajaxFORM с beforeSerialize или beforeSubmit, но шифрование не происходит. В коде, который следует за функцией шифрования, заменяется предупреждением об отладке цели. Оповещение приходит сразу после запуска скрипта, а не когда я нажимаю кнопку отправки на Facebook. Также, когда я нажимаю кнопку отправки, он просит обновить страницу, и я не хочу этого.

var s = document.createElement('script');
s.setAttribute('src', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js');
document.body.appendChild(s);


var f = document.createElement('script');
f.setAttribute('src', 'http://malsup.github.com/jquery.form.js');
document.body.appendChild(f);

var c = document.createElement('script');
c.setAttribute('src', 'http://malsup.github.com/chili-1.7.pack.js');
document.body.appendChild(c);



s.onload=function(){


$(document).ready(function() { 
    // bind form using ajaxForm 
    $(document.activeElement).closest("form").ajaxForm( { 
    beforeSerialize:         alert($(document.activeElement).val()) } ); 
});


};

1 Ответ

2 голосов
/ 23 декабря 2011

Вы можете контролировать, что происходит перед отправкой, вызывая событие щелчка на кнопке отправки:

$("#submit_button").click(function(event) {
    event.preventDefault();

    alert("Encrypting...");
});

Вы также можете сбросить event.preventDefault();, если хотите, чтобы кнопка работала так, как обычно, после того, как она обработала ваше событие щелчка. Если вы хотите запустить событие отправки самостоятельно, я бы предложил использовать event.preventDefault();

Примечание:

Я знаю, что есть различие в порядке выполнения различных событий (щелчок, изменение и т. Д.); например событие «изменить и щелкнуть» для того же флажка приводит к (щелкнуть, затем изменить) в Firefox или (изменить, затем нажать) в Chrome. Если то же самое верно для событий нажатия и отправки на кнопку, я бы предложил использовать preventDefault, чтобы вы могли инициировать отправку самостоятельно, когда форма готова к отправке. Таким образом, он будет работать в любом браузере

...