这里我使用JavaScript删除了一名员工。。。
<script type="text/javascript">
function delet(emp)
{
var answer = confirm('Are you sure?');
if(answer)
{
window.location='delete.php?emp='+emp;
}
}
</script>
通过使用锚标记am调用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"
因为您在<a>
中嵌套了一个<input type="Submit"/>
,所以单击该按钮与单击<a>
不同,而是在<a>
完成任务之前,它在任何地方都"提交"(读取到您已经打开的页面,刷新页面)。
简单演示,其中不转到谷歌。
<a href="http://google.com/"><input type="Submit"/></a>
Bergi指出,我所描述的行为是不是通用的(hello Opera,IE),除非存在<form>
元素,所以例如以下
<form action="jail.php">
<a href="go.php" onclick="window.location='?collect=£200';">
<input type="submit"/>
</a>
</form>
将直接将您送到监狱,而无需通过go或在所有浏览器上收取200英镑。
此外,这只适用于页面重定向;其他脚本可能会在页面更改之前启动,最容易观察到的是console.log
、alert
等。
您通过点击该按钮提交了一些表单。该提交过程将否决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>