繁体   English   中英

Rails-表单的jQuery UI对话框?

[英]Rails - jQuery UI Dialog for a Form?

我有一个“项目”控制器和一个“新”方法来创建不同类型的项目。 我想在jQuery UI对话框窗口中使用该表单。 我今晚开始玩耍,并且能够获得一个对话框,该对话框与以下表单一起出现:

$("#load_form")
  .load('/items/new', {item_type: '#item_type_select'})
  .dialog({modal:true, width:'auto', height:'auto'});

现在,表单是严格的HTTP(form_for)。 提交“ UI对话框”窗口中的表单(或者实际上,如果单击任何链接或任何页面请求)时,“ UI对话框”窗口将关闭,新页面将加载到浏览器中。

如果jQuery UI对话框窗口可以“更改页面”并显示显示页面(表单提交成功)或再次显示“新”页面时出现fieldErrors(保存失败),我应该怎么做? 我没有运气能找到类似如何设置Rails表单及其jQuery UI对话框响应(保存失败/成功)的教程之类的东西。

谢谢!

您必须使用jQuery提交表单,并使用jQuery处理成功的结果。

为了使用jQuery提交表单,您可以执行以下操作:

$('form').submit(function(){
  $.ajax({
    type: this.method,
    url: this.action,
    data: $(this).serialize(),
    dataType: "html",
    success: successHandler,
    error: errorHandler
  });
  return false;
});

successHandlererrorHandler是在AJAX请求完成后将被调用的函数,具体取决于服务器返回的状态码。

然后,jQuery将传递三个参数- data, textStatus, jqXHR以确保success以及jqXHR, textStatus, errorThrown表示error 从jQuery 1.5.1开始,您还可以链接回调或将AJAX事件绑定到容器-有关所有选项和更多详细信息,请检查docs

无论如何,根据您在服务器上处理错误的方式,回调将成为将结果插入回DOM,显示/重新填充模式等的地方。

例如,您可以简单地将模态的内容或包含的表单替换为服务器使用.html(data)发送的结果,解析错误等。或者关闭当前模态,然后打开一个包含返回数据的新模态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM