繁体   English   中英

如何防止超链接刷新页面?

[英]How can I prevent my hyperlink from refreshing the page?

大家,我正在使用JavaScript在页面上执行表单弹出式窗口。 包含表单而不是直接将其作为页面的一部分。

当我单击超链接时,表单仅显示一秒钟,然后消失。 如果我从字面上在同一页面中创建表单,而不是将其作为php文件包含在内,则它可以工作。

我相信是刷新页面的超链接。 如何防止超链接刷新页面?

<?php < scripttype = "text/javascript" >
function deselect(e)
    {
    $('.popUp') . slideFadeToggle(
   function ()
    {
    e . removeClass('selected');
    });
}

$(
function ()
{
$('#edit') . on('click',
function ()
    {
    if ($(this) . hasClass('selected'))
        {
        deselect($(this));
        }
      else
        {
        $(this) . addClass('selected');
        $('.pop') . slideFadeToggle();
        }

    return false;
    });
$('.close') . on('click',
function ()
    {
    deselect($('#edit'));
    return false;
    });
});
$ . fn . slideFadeToggle =
function (easing, callback)
{
return this . animate(
    {
    opacity:
        'toggle', height:
            'toggle'
            }

        , 'fast', easing, callback);
        };
</script>

这是单独文件中的表格...

<div id="contactInfoDiv" class="fluid popUp">
<form id="updateForm" method="post" action="editContact.php">
<pre>
First Name:   <input type="text" name="firstName" value="<?php echo    $firstname;?>"><br>
    Last Name:    <input type="text" name="lastName" value="<?php echo  $lastname;?>"><br>
    Address:      <input type="text" name="address" value="<?php echo $address;?>"><br>
    Phone:        <input type="text" name="phone" value="<?php echo $phone;?>"><br>
    Email:        <input type="email" name="email" value="<?php echo $email;?>"><br>
<input type="submit" name="update" value="Update"><br>
</pre>
</form>
    </div>

编辑

我正在尝试做的只是包括上面这样的表格:

<?php include("editContact.php");

<a href="userProfile.php" id="edit">Edit</a>

更新:

我添加了e.preventDefault(),如下所示:

 <script type="text/javascript">
 function deselect(e) {

  $('.pop').slideFadeToggle(function() {
 e.removeClass('selected');

    });
   e.preventDefault();
 }

   $(function() {
   $('#edit').on('click', function() {
 if($(this).hasClass('selected')) {
  deselect($(this));               
} else {
  $(this).addClass('selected');
  $('.pop').slideFadeToggle();
}
 return false;
 });

  $('.close').on('click', function() {
  deselect($('#edit'));
   return false;
   });
});

 $.fn.slideFadeToggle = function(easing, callback) {
return this.animate({ opacity: 'toggle', height: 'toggle' }, 'fast', easing,      callback);
 };

为了防止jQuery链接的默认行为,您可以使用以下命令启动函数:

$("#edit").on("click", function(e){
    e.preventDefault();
}

尝试更改HTML链接的结构。

<?php include("editContact.php");

<a href="#edit" id="edit">Test</a>

href ='#edit'使链接尝试使您的浏览器将id ='edit'的元素作为焦点,而不是尝试为您加载远程页面。 现在,用户将不会离开您的页面(没有http请求,没有刷新),并且仍然触发了jquery事件。

有关更多信息,请参见此问题

(感谢DarkBee的评论)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM