我在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("search_comp", false);
update_existing_questions();
},
parameters:Form.serialize(this)
}
);
return false;">
据我所知,onComplete永远不会在IE9中触发。为什么onComplete会在Chrome和Firefox中正常启动,而不是在IE9中启动?
答案 0 :(得分:0)
这里的问题是插入,它只发生在参数“插入”时。解决方法是升级Prototype。我使用Prototype 1.6.0.1并简单升级到1.6.0.2修复了问题。更重要的升级可能也会很好。