将事件绑定到程序化表单提交

时间:2013-08-26 12:48:25

标签: javascript jquery form-submit

有表格和按钮。

<a href="javascript:myFunc();">submit</a> 
<script>
function myFunc()  
{  
   //some actions here  
   var myForm = document.getElementById(formId);
   myForm.submit();  
}  
</script>

现在我想绑定另一个函数来提交表单事件而不修改第一部分:

<script>  
    $('formSelector').on('submit', function(){
         alert(123);
    });
</script>  

不执行上述功能。表格由myFunc()提交 表单提交之前有alert(123)的方法吗?

UPD:myFunc()。抱歉,我的错误

3 个答案:

答案 0 :(得分:0)

在这种情况下,最佳做法是提升自定义事件,类似

 function myFunc()  
{  
   //some actions here  
   $('formSelector').submit().trigger('customSubmitEvent');  
}  

然后听同一事件:

<script>  
    $('formSelector').on('customSubmitEvent', function(){
        alert(123);
    });
</script> 

答案 1 :(得分:0)

也许您可以尝试聆听a元素的“onclick”事件。但是,使用href attr来调用任意函数并不是一个好习惯。

<a id="forsubmitter" href="#">submit</a> 
<script>
jQuery(document).on('click','#formsubmitter',function() {
   if (myFunc()) {
        alert('conditions met, submitting');
        $('formSelector').submit();  
    } else {
        alert('conditions not met, but submitting anyway!');
        $('formSelector').submit();  
    }
});
function myFunc()      {  
    if (some conditions are met) {
        return true;
    } else {
        return false;
    } 
}  
</script>

答案 2 :(得分:0)

有可能在DOM准备好之前分配提交处理程序,并且选择器与任何表单都不匹配。尝试使用DOM ready函数包装事件处理程序:

$(function() {
    $('formSelector').on('submit', function(){
        alert(123);
    });
});