是否可以在Dojo中创建仅限Ajax的表单?我需要在按钮单击/输入时发出AJAX请求,但不要刷新整个页面。
这是我简单的对话框内容:
<div id="myDialog">
<table>
<tr>
<td>Name</td>
<td><input name="name" type="text"/></td>
</tr>
<tr>
<td>Owner</td>
<td><input name="owner" type="text"/></td>
</tr>
</table>
<div class="buttons">
<button class='ok'>OK</button>
<button class='cancel'>Cancel</button>
</div>
</div>
我将其转换为:
form = new Form({action: okAction, method: ''}, dojo.byId('myDialog'))
问题是,在创建Dojo表单后,我不再调用按钮上的操作,而是单击其中任何一个或按ENTER键导致页面刷新。
是否可以将AJAX请求与表单绑定,而不是整页提交?在JSF2中,它正在发挥作用。
我不喜欢在AJAX应用程序中使用表单,但我想使用Dojo验证。
答案 0 :(得分:1)
action
属性表示您提交页面,导致完整页面刷新(取决于okAction
的返回值)。如果要创建客户端表单提交,则需要使用onSubmit
事件处理程序,例如:
form.onSubmit = function(event) {
// Do this stuff
};
您的事件处理程序可能包含一个AJAX请求,就像@James Jithin在his answer中描述的那样。
您可以在API documentation了解有关事件处理程序的更多信息。
答案 1 :(得分:0)