如何在jQuery submit()执行之前运行代码?
基本上,我有一个表单和一个验证函数,当表单被提交时执行。但是,我希望在验证运行之前运行其他一些代码。我试过这个:How to order events bound with jQuery,但它不起作用。如何在jQuery submit()执行之前运行代码?
这是我有:
$('form').submit(function(){
$('form').trigger('before-submit');
if($(this).find('error').exists(event))
event.preventDefault();
});
$('form').bind('before-submit', function(e) {
if($('#url').val=='http://')
$('#url').val('');
alert('test');
});
你可以这样做:
$(function() { $('#formLogin').submit(function() { alert("Something"); //do something else here return true; }); });
这不是对这个问题的回答,也不以任何方式解决问题。 –
@MartinJaneček此代码在表单submit()执行之前运行,不是吗..?我想这是笏OP想要...否则我想它不会被接受为正确的答案..! –
不,它没有 - 在[这个小提琴]中模拟它(http://jsfiddle.net/envxddwa/) - 'Something'不会在'external(验证)'之前出现。 评论此权利,因为它被接受为正确的答案,但它不能解决问题。 –
这个怎么样:
$('form').submit(function(){
beforeSubmit(function(){
// this function is the 'callback' function
if($(this).find('error').exists(event))
event.preventDefault();
});
});
function beforeSubmit(fn) {
if($('#url').val=='http://'){
$('#url').val('');
alert('test');
}
// call the 'callback' function you gave as argument
fn();
}
嗨Sander,您的解决方案适合我。谢谢。 现在,怎样才能实现成功/失败/完整功能? –
为什么不*硬是*把呼叫“其他一些代码“在你做验证之前? – jli
第一部分是在外部文件中,第二部分是使用PHP生成的。 –
在验证之前,您仍然可以调用函数,然后在其他地方定义该函数。 – jli