【问题标题】:JavaScript is not Working on the Other Page But Works on the Same PageJavaScript 不在其他页面上工作,但在同一页面上工作
【发布时间】:2017-09-29 20:42:58
【问题描述】:

我在文本框中编写了一个 JavaScript 代码,因此只能输入数字。 javascript 代码在下面的页面上可以正常工作,但是当我将其移至 GeneralJS.js 页面时它不起作用。

这是我的 GeneralJS.js:

function numberControl(event) {
    if (event.keyCode != 8 && event.keyCode != 0 && (event.keyCode < 48 || event.keyCode > 57))
        return false;
    var frm = document.getElementById("numeric_form");
    orm.setAttribute("onsubmit", true);
    return true;
}

我在布局上调用GeneralJS.js页面。

这是我的 Add.cshtml:

<form method="post" class="form-horizontal" role="form" id="numeric_form">
    <input type="text" class="form-control" name="TCNo" min="0" maxlength="11" value="@Model.TCNo" style="width: 230px;" onkeypress="return numberControl(event)" />
</form>

这是我的 _Layout.cshtml:

<script src="~/Content/Scripts/js/GeneralJS.js"></script>

【问题讨论】:

  • 我认为是拼写错误,第 5 行“orm”不应该是“frm”吗?
  • 我改变了,但同样的问题仍然存在。
  • 你有GeneralJS.js文件的链接吗?
  • 是的,我在布局页面上调用它。
  • 你的 html 文件中是否包含 GeneralJS。

标签: javascript jquery asp.net model-view-controller


【解决方案1】:

我认为修正这个拼写错误可能会奏效,但您正在刷新 GeneralJS.js 文件的缓存版本。清除浏览器缓存,然后重试。

如果这不起作用,请将 ?version=1.1 之类的内容附加到 .js 文件路径引用中,这样会破坏缓存。

【讨论】:

    【解决方案2】:

    对于 javascript,在 general.js 页面上使用 $(document).ready( function(){ }); 对于 Jquery 使用on('load',function(){ })

    【讨论】:

      【解决方案3】:

      ~(表示 root)在这种情况下不起作用。这是Scripts.Render 使用的东西。一个简单的解决方法是将该 URL 设为绝对。

      <script src="/Content/Scripts/js/GeneralJS.js"></script>
      

      还有更多可用的配方,例如,您可以使用Scripts.Render 注册一个静态文件。查看this answer

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-27
        • 2018-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多