event.preventDefault似乎不起作用

时间:2014-10-15 11:35:05

标签: javascript jquery forms preventdefault

所以我试图阻止表单刷新页面,这就是我正在使用的代码:

$("#getName").submit(function(refresh) {
    refresh.preventDefault();
    $("#p22").fadeOut(50);
    $("#p23").fadeIn(800);
    document.getElementById("p23").innerHTML = "Oh " + userName + ", alright i wont forget that!";

})

我似乎无法正常工作......

id = getName - 是表单id

3 个答案:

答案 0 :(得分:1)

您的问题类似于:https://stackoverflow.com/a/6462306/986160

试试这个:

$("#getName").submit(function(refresh) {
    $("#p22").fadeOut(50);
    $("#p23").fadeIn(800);
    $("#p23").html("Oh " + userName + ", alright i wont forget that!");
    return false;
})

返回false就像refresh.preventDefault()和refresh.stopPropagation()一样;)详见:https://stackoverflow.com/a/1357151/986160

答案 1 :(得分:1)

我得到了这个jQuery文档的示例代码,它似乎工作正常(它警报但但是没有链接到destination.html。你的代码中的一切似乎都很好,它可能是你正在寻找的不同的东西

http://api.jquery.com/submit/

$( "#target" ).submit(function( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form id="target" action="destination.html">
  <input type="text" value="Hello there">
  <input type="submit" value="Go">
</form>
<div id="other">
  Trigger the handler
</div>

答案 2 :(得分:0)

返回false不会验证您的表单,也不会刷新您的页面。

$("#getName").submit(function(refresh) {
    refresh.preventDefault();
    $("#p22").fadeOut(50);
    $("#p23").fadeIn(800);
    document.getElementById("p23").innerHTML = "Oh " + userName + ", alright i wont forget that!";
    return false;
})