我有以下表格:
<%= form_for @question, {:as => :question, :method => :post, :url => {:action => :multiple_choice}, :html => {:onsubmit=> "return checkAnswers();"}, :class => "form-inline"} do |f| %>
提交checkAnswers()时应调用JS函数并进行一些检查。
如果我在html.erb中有这个功能,它可以正常工作。 ...但是当我在public / javascript / myJSfunctions.js中设置它时,它无法正常工作。
js文件包含在布局中。可能是什么问题?
function checkAnswers(){
var emptyStatus = false;
// prueft ob es leere antworten gibt - diese sind nicht zulaessig
$(".answerinput").each(function(){
if ($(this).val == "" || $(this).val() == " " || $(this).html() == " " || $(this).val() == ""){
$(".modal-title").html("Error");
$(".modal-body").html("Leere Antwort moeglichkeit unzulaessig");
$("#modalbox").modal("show");
emptyStatus = true;
}
});
if (emptyStatus){
return false;
}
}
答案 0 :(得分:1)
您使用的是jQuery和Turbolinks吗?我的javascript代码遇到了同样的问题,解决方法是使用gem&#39; jquery-turbolinks&#39;。您还需要在application.js中以正确的顺序要求它:
// = require jquery
// = require jquery.turbolinks
// =所有其他脚本
// =需要turbolinks(这应该是最后一个!)
答案 1 :(得分:1)
似乎你使用旧版本的rails可能&lt; rails3所以application.js文件不存在。
通过您的布局包含它。 将以下行添加到您的views / layouts / application.html.erb
<%= javascript_include_tag "myJSfunctions.js" %>