2013-01-04 108 views
1

我想提交表单onclick的锚点。下面是代码:Javascript表单提交onclick不能在谷歌浏览器工作

function submitLink() { 
    document.forms["background-form"].submit(); 
    return false; 
} 

此代码工作在FF和IE浏览器,但无法在Chrome。有人知道为什么我打电话这样的功能:

<a href="<?php echo "background.php?cred=".$cred['id']; ?>" onclick="submitLink();">Remove</a> 

回答

2

您需要从onclick函数返回false以防止默认操作。 否则,你只需按照链接。

尝试像这样

<a href="<?php echo "background.php?cred=".$cred['id']; ?>" onclick="return submitLink();">Remove</a> 

我也应该注意到,您的链接不是一个锚链接,锚链接都需要有一个fragmentation identifier。你的链接只是一个链接,点击后,浏览器将通过http获取请求导航到它,导致当前页面卸载。

但是,通过jQuery绑定事件处理程序并使用内置的preventDefault功能会更好。

了解更多关于在这里

http://api.jquery.com/event.preventDefault/

+0

非常感谢威廉。现在的问题是,它提交的表单没有去那个锚链接。任何解决此问题的方法都不会改变表单动作来重定向?只是想要发布数据,然后是要遵循的链接。 – Arun

+0

是的,因为你的链接不是一个锚链接,我编辑我的答案澄清 –

+0

有一种喜欢这种方法jQuery的用法。如果该字符串是在页面加载后很长时间由一些javascript代码生成的,那么'$(document).ready'函数中的jquery回调将不起作用。 –

0

如果您发现onClick事件不会对谷歌Chrome浏览器,那么这里就是快速的方法来解决这个问题:

更换onclick形式ID与它的名字,例如,假设您有以下内容:

<form id="form1" name="checkform1" 

查找JS事件:

onclick="document.form1.cSSld.value=''" 

替换:

onclick="document.checkform1.cSSld.value=''" 

所有集。它现在适用于所有网页浏览器。

相关问题