最后处理两个提交按钮

时间:2011-10-31 15:41:31

标签: jquery couchdb couchapp evently

我有一个带有两个提交按钮的表单:

<form>
  ...
  <input type="submit" name="update" value="Update"></input>
  <input type="submit" name="clean"  value="Clean"></input>
</form>

根据我点击的按钮,我必须做两件事。 update会将一些表单数据添加到内部结构中,clean将清除表单和内部结构。

我遇到的问题是我无法使用Evently / jQuery捕获这两个不同的事件。我可以处理表单/提交事件,但是我没有得到关于按下哪个按钮的信息(根据jQuery文档“没有提交按钮值被序列化,因为表单没有使用按钮提交”)。

或者我已尝试捕获更新/单击和清除/单击事件,但我没有成功构建我的Evently目录树来捕获它。这是我目前试图捕捉这些事件的结构:

evently/filterconf/_init/
evently/filterconf/_init/selectors/form
evently/filterconf/_init/selectors/form/clean
evently/filterconf/_init/selectors/form/clean/click.js
evently/filterconf/_init/selectors/form/update
evently/filterconf/_init/selectors/form/update/click.js
evently/filterconf/_init/mustache.html

但那些click.js没有被触发。关于如何解决这个问题的任何想法?或者你有一个完全不同的方法来建议在Evently中处理这两个提交按钮吗?

1 个答案:

答案 0 :(得分:0)

好吧,因为它只会执行ajax调用,而实际上并不是用POST提交整个表单,所以你甚至不需要这些按钮来提交按钮。只是做:

  <button id="btn_update" value="Update"></button>
  <button id="btn_clean"  value="Clean"></button>

将您的evently文件夹构建为:

evently/filterconf/_init
evently/filterconf/_init/selectors
evently/filterconf/_init/selectors/#btn_clean/
evently/filterconf/_init/selectors/#btn_clean/click.js
evently/filterconf/_init/selectors/#btn_update
evently/filterconf/_init/selectors/#btn_update/click.js

或者,根据您的方法,它将类似于:

evently / filterconf / _init /选择器/形式/ submit.js

所以你要附上提交事件,而不是点击事件。

提交处理程序应如下所示:

  function() {
      var form = $(this);
      var doc = form.serializeObject();
      // ...
  }