问题与javascript:return false不起作用

ou6hu8tu  于 2023-02-02  发布在  Java
关注(0)|答案(6)|浏览(257)

嘿,在我的程序中有一个链接,如图所示,onclick它调用函数clearform,如图所示:
Html代码:

<a class="button" href="Cancel" style="left: 55%;" onclick="clearForm()">Cancel</a>

JavaScript代码:

function clearForm(){
        document.getElementById("subjectName").value = "";
        return false;
    }

返回假是不工作在这个代码.实际上,函数的第一行执行成功,但返回假是失败的.我的意思是页面被重定向到网址“取消”.

jgwigjjp

jgwigjjp1#

将代码更改为

<a class="button" href="Cancel" onclick="return clearForm()">Cancel</a>
tpgth1q7

tpgth1q72#

你的问题是你需要返回布尔值。

但是放下一切...

  • 以不显眼的方式附加事件...

element.onclick = clearForm;

  • 使用preventDefault(),这是实现这一目标的现代方法。

function clearForm(event) { event.preventDefault(); }

6qqygrtg

6qqygrtg3#

<a class="button" href="Cancel" style="left: 55%;" onclick="clearForm();return false;">Cancel</a>

应该可以

ee7vknir

ee7vknir4#

请注意,如果clearForm()中存在bug或错误,那么“return false”不会停止锚操作,您的浏览器会尝试链接到href“Cancel”。
1.用户点击锚

  1. onClick触发clearForm()
  2. clearForm()中存在错误,因此Javascript崩溃并停止所有代码执行。
    1.不会触发return false,因为Javascript已经停止。
    如果您依赖于第三方JavaScript API(我使用的是Recyclebank提供的代码来生成弹出窗口),并且第三方API进行了破坏JavaScript的更新,那么您将遇到问题。
    以下操作将在正常情况和错误情况下停止链接。
<a class="button" href="javascript:;" style="left: 55%;" onclick="clearForm();return false;">Cancel</a>
7bsow1i6

7bsow1i65#

return false;一定要在最前面。

(In在过去的几个月里,我处理过的所有情况--可能是也可能不是bug)。
就像这样:onclick="return false; clearForm();"

    • 除此之外,正如其他人也提到的,您需要从onclick返回它,而不仅仅是从函数返回。**在您的示例中:onclick="return clearForm()".
mbskvtky

mbskvtky6#

请记住,一些浏览器扩展可能会干扰链接的正常运行。例如,我遇到了一个情况,有人同时启用了AdBlock Plus和Ghostery。单击带有'onclick=“的简单'a'标签会返回SomeFunction();“'属性(函数返回false)导致浏览器将单击视为页面转换,并转到空白页面,加载指示器一直旋转。禁用这些浏览器扩展可解决此问题。
包括这个作为答案,因为这是我从谷歌登陆的第一个页面。

相关问题