[英]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;
});
successHandler
和errorHandler
是在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.