Javascript 防止默认值在单击按钮时不随机工作

Javascript 防止默认值在单击按钮时不随机工作,javascript,c#,jquery,asp.net-mvc,razor,Javascript,C#,Jquery,Asp.net Mvc,Razor,查看一些旧代码,发现e.preventdefault()在单击按钮时表现不正常。我不确定我以前怎么没有注意到这一点,但出于某种原因,Simpy没有做好它的工作。即使执行了语句,页面仍会刷新。我是不是错过了什么,我是不是瞎了?谁能告诉我这里发生了什么事 另外,我想补充一点,它肯定会进入IF语句,因为需要取消隐藏的DIV确实会显示出来,但是页面还是会刷新,并提交它不应该提交的内容 下面是我的代码: 多谢各位 表格: 只有当您的条件为true时,您才阻止默认值,但实际上您希望始终阻止它,因为您使用的是

查看一些旧代码,发现e.preventdefault()在单击按钮时表现不正常。我不确定我以前怎么没有注意到这一点,但出于某种原因,Simpy没有做好它的工作。即使执行了语句,页面仍会刷新。我是不是错过了什么,我是不是瞎了?谁能告诉我这里发生了什么事

另外,我想补充一点,它肯定会进入IF语句,因为需要取消隐藏的DIV确实会显示出来,但是页面还是会刷新,并提交它不应该提交的内容

下面是我的代码:

多谢各位

表格:


只有当您的条件为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(....)