【问题标题】:What happens when I add multiple inline JavaScript functions to an onclick handler?当我将多个内联 JavaScript 函数添加到 onclick 处理程序时会发生什么?
【发布时间】:2015-04-22 05:14:58
【问题描述】:

我只是想知道在这种情况下会发生什么:

<input type="submit" name="a" id="b" value="Login" onclick="functionOne();functionTwo();" id="LoginUser_LoginButton">

functionOne() 是否首先运行,然后在完成后,functionTwo() 运行?

我的实际情况是在 ASP.NET 页面上,我正在尝试在登录页面中将域名附加到用户名,然后再提交:

<input type="submit" name="LoginUser$LoginButton" id="loginSubmit" value="Login" onclick="appendDomain();javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;LoginUser$LoginButton&quot;, &quot;&quot;, true, &quot;LoginUserValidationGroup&quot;, &quot;&quot;, false, false))" id="LoginUser_LoginButton">

现在我必须在提交表单之前测试 appendDomain() 是否正在运行,所以我必须在不实际提交表单的情况下以某种方式验证这一点。蒂亚!

【问题讨论】:

  • 用于“onclick”处理程序值的字符串的工作方式与代码出现在函数中一样;事实上,浏览器对该代码所做的就是将其封装为一个 JavaScript 函数。
  • 不能提交表单???

标签: javascript asp.net forms submit synchronous


【解决方案1】:

是的,这正是发生的事情。除非您的代码不执行任何异步操作,否则它将精确地按顺序执行。

但是,像这样内联 Javascript 代码被认为是不好的做法。例如,您可能希望通过使用.addEventListener 来使用不显眼的解决方案。

【讨论】:

    【解决方案2】:

    它们都会像一个接一个地写在一个JS块中一样运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-24
      • 2017-11-27
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 2021-02-06
      • 2023-04-01
      • 2013-04-13
      相关资源
      最近更新 更多