1

在这里,我使用 JavaScript 删除员工...

<script type="text/javascript">
function delet(emp)
{
    var answer = confirm('Are you sure?');
    if(answer)
    {
        window.location='delete.php?emp='+emp;
    }
}
</script>

通过使用锚标记调用javascript的函数....

<a onclick="javascript:delet('<? echo $_GET['emp']; ?>')">
<input type="button" name="delete" id="delete" style="background: url('images/del1.jpg')no-repeat;width:50px;height:50px" value=""/></a>           

但我的问题是它正在显示警报消息但在回答警报消息后它没有重定向到我给出的页面“delete.php?emp=+emp”

4

2 回答 2

7

因为您将一个嵌套在一个<input type="Submit"/>内部<a>,所以单击该按钮与单击该按钮不同,而是它在可以完成工作<a>之前无处“提交”(读取到您已经在的页面,刷新页面) 。<a>

简单的演示,你不去谷歌。

<a href="http://google.com/"><input type="Submit"/></a>

Bergi指出,除非存在元素否则我描述的行为不是通用的 (你好 Opera,IE)例如以下<form>

<form action="jail.php">
    <a href="go.php" onclick="window.location='?collect=£200';">
        <input type="submit"/>
    </a>
</form>

将直接将您送进监狱,而无需通过所有浏览器或收取 200 英镑。

此外,这只适用于页面重定向;其他脚本可能会在页面更改之前触发,最容易观察到的是console.log,alert等。

于 2013-07-05T12:24:46.477 回答
0

您正在通过单击该按钮提交一些表单。该提交过程将否决window.location导航请求。一个快速的解决方法是防止这种情况:

<a onclick="event.preventDefault(); delet('<? echo $_GET['emp']; ?>');">
// cross-browser-safe:
<a onclick="delet('<? echo $_GET['emp']; ?>'); return false">

但实际上您使用嵌套按钮的标记很奇怪。您根本不需要该链接,只需使用

<form action="delete.php" onsubmit="return confirm('Are you sure');">
    <input type="hidden" name="emp" value="<? echo $_GET['emp']; ?>" />
    <input type="submit" name="delete" id="delete" style="background: url('images/del1.jpg')no-repeat;width:50px;height:50px" value="" />
</form>
于 2013-07-05T12:47:12.457 回答