我希望能够在facebook中提交表单之前加密文本框中的文本。我尝试使用beforeSerialize或beforeSubmit的ajaxFORM插件但加密没有发生。在后面的代码中,加密功能被替换为alert for debugging目的。在我运行脚本之后立即发出警报,而不是当我按下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()) } );
});
};
答案 0 :(得分:2)
您可以通过在提交按钮上调用click事件来控制提交之前发生的事情:
$("#submit_button").click(function(event) {
event.preventDefault();
alert("Encrypting...");
});
如果您希望按钮按照处理点击事件后的正常操作,您也可以删除event.preventDefault();
。如果您想自己触发提交活动,我建议您使用event.preventDefault();
注意:的
我知道执行不同事件(点击,更改等)的顺序有所不同;例如同一个复选框上的更改和单击事件会导致在Firefox中进行(单击,然后更改),或者在Chrome中进行(更改,然后单击)。如果按钮上的点击和提交事件也是如此,我建议使用preventDefault
,这样您就可以在表单准备好提交时自行触发提交。这样,它可以在任何浏览器中使用