2011-10-31 170 views
1

我有两个表单提交按钮:处理两个提交按钮与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中的这两个提交按钮的建议?

回答

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 /选择/表格/提交.js

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

提交处理程序应该是这样的:

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

当我在提交处理程序做serializeObject没有有关哪些按钮被按下。 – dangonfast

+0

另一个aproach(#btn_clean,#btn_update)正在工作。我必须使用'$(this).parent(“form”)'来访问表单 – dangonfast