在Safari中防止默认

时间:2011-05-31 10:07:37

标签: javascript jquery html safari webkit

我有一个包含代码的文本框;

<input type="text" maxlength="5" size="2" value="1" id="paging_textbox">

现在此页面上没有封面表格标签..

当用户在此文本框中键入并按Enter键时,此页面上的表格会更新(通过AJAX调用)

在Safari中,行为略有不同,即使它正确地更新了表,它会重新加载页面(认为它提交表单,但不确定如何没有表单标记)并重置文本框值返回“1”

如何防止在Safari中发生这种情况?

请帮帮我。谢谢。

3 个答案:

答案 0 :(得分:5)

为了确定,请使用return false终止您的回调函数。 这应该可以解决问题。

 function(e) {
     e.preventDefault();
     // some awesome code
     return false;
 }

哦,还有一件事:将来,要避免这种随机行为..尊重标准,使用form:)

答案 1 :(得分:0)

中的

//Press Enter in INPUT moves cursor to next INPUT
$('#form').find(':input').keypress(function(e){
    if ( e.which == 13 )
    {
        $(this).next().focus();  //Use whatever selector necessary to focus the 'next' input
    }
});

JAVASCRIPT

<script language="JavaScript">
function disableEnterKey(e)
{
     var key;
     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox
     if(key == 13)
          return false;
     else
          return true;
}
</script>

并写

<input type=”text” name=”mytext” onKeyPress=”return disableEnterKey(event)”>

答案 2 :(得分:0)

使用event.preventDefault()或返回False应该为你做的伎俩。