远程表单在Chrome和Firefox中正常完成,但不是IE

时间:2012-01-05 20:10:39

标签: javascript ruby-on-rails ajax internet-explorer prototypejs

我在Ruby on Rails中使用remote_form_for创建一个弹出窗体,在提交时通过AJAX获取一些信息并将其返回到当前页面。 Firefox和Chrome中的一切都很棒,但在IE9中却不行。 Ruby代码看起来像这样:

remote_form_for  :quiz_questions,
                 :url => auto_populate_quiz_questions_path(),
                 :update => "quiz_questions",
                 :html => { :id => "auto_pop_questions_form" },
                 :position => "after",
                 :complete => 'toggle_hidden("search_comp", false); update_existing_questions(); ' do |f| %>

这会产生对我来说正确的HTML和Javascript代码,但在IE中不起作用。这是HTML和Javascript:

<form 
 action="/cms/quiz_questions/auto_populate" 
 id="auto_pop_questions_form" 
 method="post" 
 onsubmit="new Ajax.Updater(
   'quiz_questions', 
   '/cms/quiz_questions/auto_populate', 
   {
     asynchronous:true, 
     evalScripts:true, 
     insertion:'after', 
     onComplete:function(request){
       toggle_hidden(&quot;search_comp&quot;, false);
       update_existing_questions(); 
     }, 
     parameters:Form.serialize(this)
   }
 ); 
 return false;">

据我所知,onComplete永远不会在IE9中触发。为什么onComplete会在Chrome和Firefox中正常启动,而不是在IE9中启动?

1 个答案:

答案 0 :(得分:0)

这里的问题是插入,它只发生在参数“插入”时。解决方法是升级Prototype。我使用Prototype 1.6.0.1并简单升级到1.6.0.2修复了问题。更重要的升级可能也会很好。