javascript - 无法使用 .tmpl onchange 调用 reg.cgi 中的 JS 函数

标签 javascript jquery perl cgi

我在一个网站上工作。该站点有一个使用registration.tmpl 模板的注册页面reg.cgi。我在registration.tmpl中包含了一些javascript。 javascript代码有一个简单的函数,每次用户调用时都需要调用 更改选择选项 (onchange="myCoolFunction()") 但不会触发。我认为这是因为 Perl。也许我需要更改 reg.cgi 或者我错了。

在 Chrome 控制台中出现一个错误:

  • 未捕获引用错误:myCoolFunction() 未定义

定义是:

  $(document).ready(function(){
  function myCoolFunction() {
        if ($("#payment_card").val() == '00') {
            $('input[name="cvv2"]').prop('disabled',true);
        }
        if ($("#payment_card").val() == 'VI') {
            $('input[name="cvv2"]').val("");
            $('input[name="cvv2"]').removeAttr('disabled');
            $('input[name="cvv2"]').attr('maxlength','3');
        }
        if ($("#payment_card").val() == 'AM') {
            $('input[name="cvv2"]').val("");
            $('input[name="cvv2"]').removeAttr('disabled');
            $('input[name="cvv2"]').attr('maxlength','4');
        }
  };
}
);

调用的是:

<select id="payment_card" onchange="myCoolFunction()">
  <option value="00"></option>
  <option value="VI">VISA, MC</option>
  <option value="AM">AMEX</option>
</select>

我在本地测试了纯 javascript + HTML,没有错误。它可以工作,但是在带有 cgi 的服务器上在线它不会工作。 如果有人有 .cgi + tmpl + javascript 的经验,那就太好了 帮助或建议我。在 .tmpl 中包含 .cgi 中使用的 javacript 是否正确? 谢谢。

最佳答案

粘贴从 jsfiddle 复制的代码后,我在 Chrome 中遇到相同的错误。我认为您也面临着同样的问题。

如果您从 jsfiddle 中的面板中选择所有代码并将其粘贴到 Notepad++ 中,您应该能够看到问题字符为问号“?”在代码的最后。删除这个问号,然后从 Notepad++ 中复制并粘贴代码,问题就会消失。

关于myCoolFunction()未定义。请分享您的代码,以便我们可以看到您哪里做错了。

编辑:(根据您的回答,为什么它在 jsFiddle 上不起作用)

JSFiddle 默认情况下将您的 javascript 代码包装在页面的 onLoad 调用中,因此 myFunction 仅在该函数的范围内定义。更改为“无包装”,您的代码将按预期运行。看到这个,它有效:http://jsfiddle.net/chankeypathak/SB3gd/2/

关于javascript - 无法使用 .tmpl onchange 调用 reg.cgi 中的 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24108543/

相关文章:

javascript - ajax调用后更新div

perl - Mojolicious 自定义 session

perl - 在 Perl 中使用一个哈希引用而不是两个

perl - 使用 Perl 抓取 HTML 文件,仅返回内容,按顺序

javascript - CSS:隐藏滚动条。

javascript - 如何转换变化的数据以在 chart.js 中可视化

javascript - 从firebase数据库表中检索列表中的数据

javascript - 在 UISlider 下添加数字

javascript - 将 jQuery 的 .val() 方法扩展到非输入元素

javascript - jQuery before()/after() 无法与 HTML 正常工作?