一个JavaScript函数运行,但两个不运行

One JavaScript function runs, but two don't?

本文关键字:运行 两个 JavaScript 函数 一个      更新时间:2023-09-26

我有一个大型Ruby on Rails表单,它具有以下部分视图结构(file_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 %>

在这种情况下,当我单击"Run Function1"或"Apply"按钮(按钮突出显示但不做任何事情)时,没有一个函数被调用。但是如果我把每个函数放到单独的

<script>
</script>
因此,

有2个脚本/脚本部分,每个部分包含一个函数,然后函数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;
        }
    }
}

输入类型submit将提交表单。你需要修改它:

<div class="actions">
 <input type="button" value="Apply" onclick="applyConfigs();">
</div>

正确的名称是onClick大写C,但这并不重要。假设你的javascript是无错误的…尝试对应用按钮使用onSubmit事件。我想这就是你想要的。onSubmit甚至可以让你有条件地取消表单提交