javascript的问题:return false无法正常工作

时间:2011-04-27 07:20:42

标签: javascript anchor

嘿,我的程序中有一个链接如图所示,并点击它调用函数clearform,如下所示:

Html代码:

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

JavaScript代码:

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

返回false在此代码中不起作用。实际上函数的第一行成功执行但返回false失败。我的意思是页面被重定向到网址“取消”。

5 个答案:

答案 0 :(得分:20)

将您的代码更改为

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

答案 1 :(得分:8)

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

但是,放下所有......

  • 不引人注意地附加您的活动......

    element.onclick = clearForm;

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

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

答案 2 :(得分:1)

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

应该有效

答案 3 :(得分:1)

请注意,如果clearForm()中存在错误或错误,则“return false”将不会停止锚定操作,您的浏览器将尝试链接到href“取消”。这是逻辑:

  1. 用户点击锚点
  2. onClick会触发clearForm()
  3. clearForm()中存在错误,因此Javascript崩溃并停止所有代码执行。
  4. 返回false永远不会被解雇,因为Javascript已经停止。
  5. 如果您依赖第三方JavaScript API(我使用Recyclebank提供的代码来生成弹出窗口),并且第三方API会进行更新以破坏JavaScript,那么您将遇到问题。

    以下内容将在正常条件和错误条件下停止链接。

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

答案 4 :(得分:-2)

请注意,某些浏览器扩展程序可能会影响链接的正常运行。例如,我遇到了某人同时启用了AdBlock Plus和Ghostery的情况。单击带有'onclick =“的简单'a'标签返回SomeFunction();”'属性(函数返回false)导致浏览器将点击视为页面转换并转到空白页面并且加载指示器保持不变纺纱。禁用这些浏览器扩展可以解决问题。

将此作为答案包括在内,因为这是我从谷歌登陆的第一页。