【发布时间】:2011-12-14 06:59:07
【问题描述】:
我有一个大型 Ruby on Rails 表单,它具有以下部分视图结构(文件 _form.html.erb)
<script language="javascript" type="text/javascript">
function myFunction1() {
... some js code here
}
function applyConfigs() {
... some js code here
}
</script>
<%= form_for(@test, :html => {:name => "Test", :id => "test_form"}) do |f| %>
... some Ruby code here
<div class="actions">
<input type=button value="Run Function1" onclick="myFunction1();">
</div>
... some Ruby code here
<div class="actions">
<input type=submit value="Apply" onclick="applyConfigs();">
</div>
<% end %>
在这种情况下,当我单击“运行 Function1”或“应用”按钮(按钮突出显示但不执行任何操作)时,不会调用任何函数。但是如果我把每个函数放在一个单独的
<script>
</script>
因此有 2 个脚本 /script 部分每个都包含一个函数,然后函数 myFunction1() 被正确执行,但 applyConfigs() 仍然没有(表单已提交但 applyConfigs() 函数未执行)。在任何情况下都没有错误消息,只是没有执行的功能。
知道这里发生了什么吗?
我的函数applyConfigs() 非常大,但这是我调用的另一个函数myFunction1()
function showHideDiv(elementId,buttonId) {
if (document.getElementById) {
var element = document.getElementById(elementId);
var button = document.getElementById(buttonId);
if (element.style.display == 'none') {
element.style.display = 'block';
button.value = "Hide Options";
return false;
} else if (element.style.display == 'block') {
element.style.display = 'none';
button.value = "Show Options";
return false;
}
}
}
【问题讨论】:
-
我看到的第一件事是你有一个分号;在你的函数调用之后。尝试删除它们。
-
也许给我们你的 JavaScript 代码,它可能真的很有用。
-
分号有效(偶数句柄中可以有多个语句)
-
我重新编辑了我的帖子并添加了其中一个功能;另一个很大
-
原来我的问题是第二个函数包含语法错误,但是当我加载表单或单击按钮时,我没有收到任何警告。此外,如果我在同一个脚本/脚本部分中有多个 js 函数,每个函数都由一个单独的按钮调用并且一切正常,但是如果我故意在其中一个函数中引入语法错误,那么所有这些函数都变得无用,没有任何错误或警告信息!这太可怕了,我不敢相信这是真的,我测试了很多次来证明这一点!
标签: javascript function button submit