如何防止这个 jQuery 函数在每次页面加载时执行?

2024-01-28

我相信我有办法解决我的问题,但我想确定一下。这就是我所拥有的:

<html>...
<body>...

 <script type="text/javascript" src="../JS/jquery.js"></script>
 <script type="text/javascript" src="../JS/respond.min.js"></script>
 <script type="text/javascript" src="../JS/jquery.min.js"></script>
 <script type="text/javascript" src="../JS/validate.js"></script>
 <script type="text/javascript" src="../JS/jQueryCalls.js"></script>
 ...

<form name="login-form" class="login-form" method="post" onSubmit="login()">

  <div class="header">
    <h1>Sign In</h1>
  </div>

  <div class="content">
    <input type="hidden" name="siteToken" value="$token" />
    <input id="username" name="username" type="text" class="input username"  placeholder="Username" required="required" />

  <div class="user-icon"></div>
    <input id="password" name="password" type="password" class="input password" placeholder="Password" required="required" />

  <div class="pass-icon"></div>

  </div>

  <div class="footer">
    <input type="submit" name="submit" value="Login" class="button" />
  </div>
</form>

Now onSubmitjQuery 函数的链接是外部文件 jQueryCalls.js。这是函数:

$(function login() {
    var formData = $('#login-form').serialize(); //Grab all submission data from login form
    $("input").prop("disabled", true); //Disable inputs for the duration of the post

    var request = $.post('E:\Additional Programs\xampp\htdocs\Vista_Ridge_Territory_System\PHP\Scripts\VRC_LoginProcess.php', formData, loginMessage);

    //Handle server-side response
    function loginMessage(data) {
        $('.header').append("nada");
    };

});

每次加载页面时,都会执行此函数 - 显然这会产生问题,因为我禁用了输入。我的假设是我可以通过以下方式解决问题:

$(document).ready(function login() {
  $('.login-form').submit(function() {
   var formData = $(this).serialize();
   .post('whatever', formData,...

我很好奇是否有人对此有任何见解,以及为什么它在每个页面加载时执行?具体来说,我是否需要修改表单操作属性,不同的实现onSubmit, ETC?我假设浏览器只是查看文件并执行包含的函数。另外,我在 Chrome 控制台中收到跨源错误。是否php文件需要与 jQuery 函数位于同一目录中吗?任何意见都会受到赞赏。


关键在这里:

$(function login() {
});

请记住,jQuery 并不是一种不同的语言 - 它只是带有一些已定义的辅助函数的 JavaScript。所以你打电话给$()函数,并传入一个函数作为参数。您命名该函数的事实是无关紧要的 - 它仍然作为参数传递给$().

当您致电$() or jQuery()函数并传入另一个函数,这是定义文档就绪事件处理程序的快捷方式。所以你的代码实际上与这样做是一样的:

$(document).ready(function() {
    var formData = $('#login-form').serialize();
    $("input").prop("disabled", true);
    // the rest of your function here...
});

...这导致它在每次页面加载时运行。

如果您只是定义一个稍后调用的函数,则没有理由将其包装在$()。您可以这样定义您的函数:

function login() {
    var formData = $('#login-form').serialize();
    $("input").prop("disabled", true);
    // the rest of your function here...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止这个 jQuery 函数在每次页面加载时执行? 的相关文章

随机推荐

  • 使用套接字 io 向所有浏览器发送消息

    我正在摆弄socket io和node js 并且想知道如何完成以下任务 我有一个简单的表单 将文本字符串发送到服务器 服务器将其发回 并将其附加到div中 我想做的是为所有浏览器中的所有用户更新该 div 目前它只更新发送消息的浏览器 来
  • 拒绝应用来自...的样式,因为其 MIME 类型('text/html')不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查

    此错误仅在 Chrome 中显示 我正在搜索这个问题 但还没有找到令人满意的解决方案 我附上了该错误的屏幕截图 请为此提出一些想法 错误图像 https i stack imgur com 6IAxV png 样式表的 MIME 类型应为t
  • 是否可以在 Wear OS 中永久可靠地运行网络 ping 服务?

    我正在尝试找到一种在 Wear OS 上以可靠的方式运行网络心跳服务的方法 目标是有一个进程每 x 分钟发送一次网络请求 无论设备的状态如何 屏幕开 关 充电 关闭充电器等 有可能实现吗 我的方法是运行前台服务 https develope
  • SSDT 创建回滚部署脚本?

    我们可以使用TFS SSDT创建SQLServer部署脚本 但是有没有办法创建回滚脚本 以便我们可以回滚部署 谢谢 由于 SSDT 和类似产品 都是通过将项目中的模式与实时数据库进行比较来使数据库与模型同步来工作的 因此没有直接的方法来创建
  • 可以使用 Window.Onscroll 方法来检测滚动方向吗?

    可以使用 Window Onscroll 方法来检测滚动方向吗 如果您在页面加载时以及每次发生滚动事件时记录scrollX和scrollY 那么您可以将以前的值与新值进行比较 以了解滚动的方向 这是概念证明 function scrollF
  • 从 .NET Windows 服务调用本机 DLL 失败

    我有一个本机 dll 形式的第 3 方 API 我使用 C 调用它DllImport 此本机 dll 依赖于打开的第 3 方应用程序 当我正常运行代码时 API 会执行预期的操作并驱动应用程序 然而 当我运行与 Windows 服务相同的代
  • 将点分布在边界内的表面上

    我对一种在 4 面 如正方形 上分布预定义数量的点的方法 算法 感兴趣 主要问题是每个点必须具有彼此之间的最小和最大接近度 两个预定义值之间的随机值 基本上 任何两点的距离不应小于 2 也不应大于 3 我的代码将用 ruby 实现 点是位置
  • 一年中的每个星期?

    我试图通过一年中的周数和一年中的周数来获取一年中的月份数 例如 第 1 周是 1 月 返回 1 第 6 周是 2 月 所以我想要 2 我试着去date parse from format W Y 但没有成功 这给了我错误 有什么办法可以一起
  • 运行 sbt 的项目根目录中的 java.lang.NullPointerException

    我从 Scala 开始 尝试在我的项目文件夹中运行 sbtbuild sbt是 当我收到此错误时 此文件夹是唯一的文件夹 如果我在src文件夹或我的文档文件夹中我没有 收到错误 谁能告诉我为什么会发生这种情况 我不知道如何表示文件夹结构 它
  • 在 Linux 上如何获取中断向量号?

    当我运行 cat proc interrupts 时 我可以得到以下信息 CPU0 CPU1 0 253 1878 IO APIC edge timer 1 3 0 IO APIC edge i8042 7 1 0 IO APIC edge
  • jQuery UI Datepicker - 禁用特定日期

    有没有任何 简单 方法可以将 jQuery UI Datepicker 设置为不允许选择特定的预定日期 我能够得到这种方法 https stackoverflow com questions 501943 can the jquery ui
  • Ionic 4:滚动时隐藏离子标签栏,就像 LinkedIn 应用程序一样

    我正在使用默认的 ion tab bar 和底部放置 如 LinkedIn 应用程序中所示 我想在滚动时隐藏标签栏并在滚动停止时再次显示它 这个功能可以在LinkedIn应用程序中看到 这是 tabs page html
  • asp.net、gettype() 和完全限定类名

    我已经阅读了这里的其他一些线程 尽管它们都没有真正解释如何解决我的问题 我有一个带有以下页面的网络应用程序 代码隐藏 namespace Company Web UI Content public partial class Home Lo
  • Yii2 在单个事务中的单个保存调用中保存相关记录

    在 yii2 中 我如何将多个相关记录保存到数据库中到单个保存调用和单个事务中 我有两张桌子 User id name UserAddress id user id city User 表与 UserAdress 表具有一对多关系 我想做的
  • 使用 has_many :through 时连接模型中的验证失败

    我的完整代码可以在以下位置查看https github com andyw8 simpleform examples https github com andyw8 simpleform examples 我有一个加入模型ProductCa
  • 芝麻服务器对 SPIN 的支持

    我是 SPIN 的新手 我阅读了文档并查找了一些示例 但我想开始使用它 我看到了一些工具http topquadrant com http topquadrant com对于 SPIN 但我已经使用 openrdf sesame 服务器一段
  • Android 画布坐标系

    我正在尝试查找有关如何更改画布坐标系的信息 我有一些矢量数据 想使用圆形和线条等绘制到画布上 但数据的坐标系与画布坐标系不匹配 有没有办法将我正在使用的单位映射到屏幕的单位 我正在绘制一个不占用整个显示屏的 ImageView 如果我必须在
  • Tkinter Spinbox 小部件设置默认值

    我有一个 tkinter spinbox sb Spinbox frame from 1 to 12 我想将 spinbox 的默认值设置为 4 我该怎么做 我读过这个帖子 布莱恩建议设置 Tkinter Spinbox values 1
  • 实体控制边界(ECB)与模型视图控制器(MVC)[重复]

    这个问题在这里已经有答案了 我不确定我是否有正确的概念 人们告诉我 边界 视图 实体 模型 控制 控制器 然而基于我对 MVC 的了解 胖模型 瘦控制器 不是 Boundary Controller Control Model 业务逻辑 和
  • 如何防止这个 jQuery 函数在每次页面加载时执行?

    我相信我有办法解决我的问题 但我想确定一下 这就是我所拥有的