Javascript 防止默认值在单击按钮时不随机工作
查看一些旧代码,发现e.preventdefault()在单击按钮时表现不正常。我不确定我以前怎么没有注意到这一点,但出于某种原因,Simpy没有做好它的工作。即使执行了语句,页面仍会刷新。我是不是错过了什么,我是不是瞎了?谁能告诉我这里发生了什么事 另外,我想补充一点,它肯定会进入IF语句,因为需要取消隐藏的DIV确实会显示出来,但是页面还是会刷新,并提交它不应该提交的内容 下面是我的代码: 多谢各位 表格:Javascript 防止默认值在单击按钮时不随机工作,javascript,c#,jquery,asp.net-mvc,razor,Javascript,C#,Jquery,Asp.net Mvc,Razor,查看一些旧代码,发现e.preventdefault()在单击按钮时表现不正常。我不确定我以前怎么没有注意到这一点,但出于某种原因,Simpy没有做好它的工作。即使执行了语句,页面仍会刷新。我是不是错过了什么,我是不是瞎了?谁能告诉我这里发生了什么事 另外,我想补充一点,它肯定会进入IF语句,因为需要取消隐藏的DIV确实会显示出来,但是页面还是会刷新,并提交它不应该提交的内容 下面是我的代码: 多谢各位 表格: 只有当您的条件为true时,您才阻止默认值,但实际上您希望始终阻止它,因为您使用的是
只有当您的条件为true时,您才阻止默认值,但实际上您希望始终阻止它,因为您使用的是ajax
$("#btnSaveTerminalCommand").click((e) => {
e.preventDefault();
if(....)
在条件中添加一个return
,以防止ajax使用无效数据执行
还要注意,
$(selector).val()
将返回string,而不是null
仅当条件为true时才阻止默认值,但由于您使用的是ajax,所以实际上希望始终阻止默认值
$("#btnSaveTerminalCommand").click((e) => {
e.preventDefault();
if(....)
在条件中添加一个return
,以防止ajax使用无效数据执行
还请注意,$(selector).val()
将从MDN返回字符串,而不是null
:
事件接口的preventDefault()方法告诉用户代理,如果事件没有得到显式处理,则不应像通常那样执行其默认操作。事件继续像往常一样传播,除非它的一个事件侦听器调用StopRopagation()或stopImmediatePropagation(),这两个侦听器都会立即终止传播
换句话说,它不会突破您的代码。它只会阻止DOM中的其他处理程序从这个处理程序中冒泡出来对事件做出反应
也许您想在调用e.stopImmediatePropagation()后执行返回语句 来自MDN:
事件接口的preventDefault()方法告诉用户代理,如果事件没有得到显式处理,则不应像通常那样执行其默认操作。事件继续像往常一样传播,除非它的一个事件侦听器调用StopRopagation()或stopImmediatePropagation(),这两个侦听器都会立即终止传播
换句话说,它不会突破您的代码。它只会阻止DOM中的其他处理程序从这个处理程序中冒泡出来对事件做出反应
也许您想在调用e.stopImmediatePropagation()后执行返回语句 什么特别不起作用?这个术语几乎毫无意义。你是返回真值还是返回?刚刚看到你的更新!它起作用了!非常感谢你。我在这个问题上被难住了一段时间。有什么特别不起作用的?这个术语几乎毫无意义。你是返回真值还是返回?刚刚看到你的更新!它起作用了!非常感谢你。我在这个问题上被难住了一段时间。您是否尝试过
返回true代码>在如果块结束时?@Paurian将不会返回true
false
或nothing您是否尝试过返回true代码>在如果块结束时?@Paurian将不会返回true
<代码>错误
或无
$("#btnSaveTerminalCommand").click((e) => {
e.preventDefault();
if(....)