javascript - 如果警报同时从不同的功能触发,则阻止执行功能
问题描述
问题
动作A同时触发函数B和函数C(?!)。如果B抛出警报,我可以通过使用某种通用侦听器函数来阻止C执行吗?
我寻求的解决方案不涉及向函数C添加特定的侦听器,它必须保持通用。
我的例子
我在下面有以下代码,当按下模式中的按钮时会触发该代码。这将删除内容,直到处理 GET 方法并将用户返回到重定向页面。
$( ".loadingEnabled" ).click(function( event ) {
$(".loadingSpinner").css("display","block");
$(".myModalContent").hide();
$(".modal-header").html("<b>Processing your request</b>");
$(".modal-footer").hide();
});
在模态中,我只有几个简单的验证脚本,例如:
} else if ($("#name").val().length < 2){
event.preventDefault();
alert("You cannot proceed without entering your name")
}
因此,在当前设置下,用户将触发loadingEnabled
点击功能,但是,如果数据无效,loadingEnabled
则会触发hide()
并css()
无限期地submit
消失并被preventDefault()
触发。
问题是,如果触发了 an ,我可以在函数中引入一些loadingEnabled
阻止它执行的东西吗?alert
我可以想到解决方法。我只是想知道这种情况是否有任何问题。
解决方案
我没有找到我想到的解决方案,但是,我实施的解决方案涉及:
validated
实例化一个新的全局变量true
- 定位
loadingEnabled
功能一个接着一个validation
功能,以便系统首先执行validation
。 - 在每个失败的验证中添加一行以设置
validated
为false
如果输入无效并且如果所有验证通过设置validated
为true
- 将条件设置
if statement
为仅loadingEnabled
在validation
is时执行true
。
上述解决方案保证了loadingEnabled
可以重复使用。
推荐阅读
- google-chrome-extension - Chrome webextensions:如何使用 fetch api 获取内容长度标头
- r - 如何在 R 中使用 mongoite 更新 mongo 中的布尔值
- android - Android Retrofit 2.1.0 Response.body() 为空,状态码为 404
- docker - 将 Linux 容器分配到与主机相同的 LAN 的方法?
- python - 在 pendulum.parse 中为不明确的日期指定 dst_rule
- c# - 在 VS2017 中创建 control-rsweb-Reportviewer 时出错
- r - 使用 jsonlite 从 R 中的福布斯网站获取 json 时出错
- c# - 如何在没有驱动程序的情况下获取设备的硬件 ID?
- spring - 在主体中更新用户的名字和姓氏
- ios - 按钮单击在 iOS 中不起作用