捕获submit()方法

时间:2012-10-10 11:06:51

标签: javascript submit capture

我的表格如下:

<form method="POST" action="page.html" onsubmit="alert('foo'); // validate();" name="foobar">
...
</form>

和类似的链接:

<div onclick="document.foobar.submit();">click me</div>

如何捕获submit()方法并调用我的验证函数?

JsBin example

4 个答案:

答案 0 :(得分:1)

你可以从html本身调用方法。修改后的jsbin。不是在点击时提交表单,您可以致电submitHandler并传递表单参考。

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
  <script type="text/javascript">
    function validate(){

    }

    function submitHandler(form){
      validate();
      alert('foo');

}
    window.onload = function(){
        document.foobar.submit = submitHandler;
    }
</script>

</head>
<body>
    <form method="POST" action="page.html" onsubmit="submitHandler(this);" name="foobar">
      <input type="text" />
    </form>

    <div onclick="document.foobar.submit()">click me</div>
</body>    
</html>

答案 1 :(得分:1)

使用ID

唯一标识您的表单
document.getElementById('formid').onsubmit = function() {
    // You have captured the submit method now do what you need
};

Demo

答案 2 :(得分:0)

您可以使用jQuery .submit()处理程序。

$('form').submit(function(evt) {
  evt.preventDefault();
  alert('Handler for .submit() called.');
  // Validate function returns false or true
});

答案 3 :(得分:0)

试试这个:

<script type="text/javascript">
function addEventsToHTML(){
    var form = document.getElementById('foobar');
    form.onsubmit = submitHandler;
    function submitHandler(){
        validate();
    }
}
window.onload = addEventsToHTML;
</script>