是否可以在Dojo中创建仅Ajax表单(仅使用ajax提交)?

时间:2013-10-11 08:25:11

标签: ajax forms validation dojo

是否可以在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验证。

2 个答案:

答案 0 :(得分:1)

action属性表示您提交页面,导致完整页面刷新(取决于okAction的返回值)。如果要创建客户端表单提交,则需要使用onSubmit事件处理程序,例如:

form.onSubmit = function(event) {
    // Do this stuff
};

您的事件处理程序可能包含一个AJAX请求,就像@James Jithin在his answer中描述的那样。

您可以在API documentation了解有关事件处理程序的更多信息。

答案 1 :(得分:0)

您可以使用dojo获取或发布表单。请参阅xhr调用期间设置的表单属性。

dojo.xhrPost

在这里,您可以传递表单的ID并将其提交给服务器。然后在onLoad上,您可以决定如何处理响应。