我有一个带有两个提交按钮的表单:
<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中处理这两个提交按钮吗?
答案 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();
// ...
}