2011-12-23 7 views
3

Я хочу, чтобы иметь возможность шифровать текст в текстовом поле перед отправкой формы в 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()) }); 
}); 


}; 

ответ

2

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

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

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

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

Примечание:

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

+0

Я не знаю идентификатора или имени кнопки отправки, поэтому я не могу использовать $ (# submit_button). Также в facebook только в первом текстовом поле есть кнопка отправки. другие текстовые поля отправляются, нажимая «enter». Спасибо за вашу помощь. – vkefallinos

+0

, так есть способ, которым я могу обойти вышеупомянутые проблемы? – vkefallinos

+0

Если они отправлены путем ввода, то к нему все еще прикреплен обработчик отправки, а не кнопка. Поэтому .submit() все равно вызовет событие. (Имейте в виду, вам нужно вызвать его как $ ("# id_of_form или .class_of_forms"). Submit(); Также вы можете найти кнопку, копаясь в DOM: $ (форма body> div> input [type = submit] ") (не на 100% уверен в синтаксисе, проверьте Google, но это основная идея. Вы также можете выкопать: $ (" # id_of_element_inside "). parent(). parent() например: -) – Flater

Смежные вопросы