ruby-on-rails-3 – 使用JS在Rails 3,HAML中从远程更改为非远程
问题是,我有一个远程表单,根据条件,id喜欢转换为非远程表单(使用UJS),然后提交.
注意表单有文件上传. 这里的细节:我最初渲染了远程表单 = form_for @myobj,:url => {:action=>"remoteAction",:controller=>"myobjects"},:remote => true do |f| ... (f.fields....) 它产生HTML: <form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" data-remote="true" action="/remoteAction"> 当我点击提交,按预期,表单提交’AS JS’. $('form#new_myobj').removeAttr("data-remote"); $('form#new_myobj').attr('enctype','multipart/form-data'); $('form#new_myobj').attr('action','/myobjects/regularAction'); 它成功地将页面上的HTML(通过Firebug见证)更改为: <form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" enctype="multipart/form-data" action="/myobjects/regularAction"> 因为表单包含一个f.file_field,所以我必须以multipart的形式提交图像,因此可以上传图像,我无法提交’AS JS’ 问题是,我还需要在HTML中更改哪些表单可以提交非xhr?是否与标题有关? 解决方法
jQuery是数据属性有点棘手,因为它们都是
读取HTML5数据标签以及其自己的存储绑定到 DOM元素,也称为数据.写入属性时 该值被复制到jQuerys自己的数据存储(大概是 当数据(“远程”)被调用时). 但是,这只会发生 此外,我们确实需要删除属性 – 将其设置为 TL; DR: > attr(“data-remote”)!= data(“remote”) $("form").removeAttr("data-remote"); $("form").removeData("remote"); 记录下来,如果你真的知道你在找什么: > http://api.jquery.com/jQuery.data/(低电平功能) StackOverflow不允许我发布两个以上的链接,但您可以猜测removeData一个.高层次的功能与低层次的功能相关联. 避免Rails 4中的令牌真实性错误: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |