0

我使用 Yandex.Metrika 来跟踪我网站上的用户活动(就像 Google Analytics 一样)。它有一个选项来跟踪用户如何使用 html 表单 - 他/她在那里输入的内容、每个字段花费的时间等(俄语链接)。但是为了正常工作,它需要提交带有submit事件的表单。

我有以下代码:

<form class="form-horizontal" role="form" id="utsDetails">
...
<button type="button" id="calc" name="calc">Calculate</button>
</form>

<script type="text/javascript">
   $("#calc").click(function() {
      $.ajax({
        type: 'POST',
        dataType: 'json',
        data: {
           // all utsDetails form fields are there
        },          
        beforeSend: function(){
           // ...
        }
      })
      .done(function(data, textStatus, jqXHR) {
          // ...
      });

有什么方法可以修改我的代码以保持功能不变(即在按下按钮时不应该重新加载页面,结果应该作为 JSON 接收,beforeSend并且done应该执行函数等),但是要发送表单数据submit

4

1 回答 1

0

以下更改帮助了我:

<form class="form-horizontal" role="form" id="utsDetails" method="POST" action="/"> <!-- added method and action -->
...
<button type="submit" id="calc" name="calc">Calculate</button> <!-- replaced  type with "submit" -->
</form>

<script type="text/javascript">
   $("#utsDetails").submit(function() { // instead of $("#calc").click(function() {
      $.ajax({
        type: 'POST',
        dataType: 'json',
        data: {
           // all utsDetails form fields are there
        },          
        beforeSend: function(){
           // ...
        }
      })
      .done(function(data, textStatus, jqXHR) {
          // ...
      });
      return true; // to avoid page reload
于 2015-10-06T19:08:04.470 回答