确认/重定向功能不起作用 - javascript

时间:2013-07-05 12:21:55

标签: php javascript html

我在这里使用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”

2 个答案:

答案 0 :(得分:7)

因为您在<input type="Submit"/>内嵌入了<a>,所以点击按钮与点击<a>不同,而不是“提交”无处(阅读页面你在<a>可以完成任务之前,已经开启,刷新页面。

Simple demo 去google。

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

Bergi pointed out我所描述的行为不是通用的 (你好,Opera,IE) ,除非{{1}元素存在,所以for example以下

<form>

会直接将您发送到 jail ,而不会在所有浏览器中传递 go 收取200英镑

此外,这仅适用于页面重定向;其他部分的脚本可能会在页面更改之前触发,最容易观察到的是<form action="jail.php"> <a href="go.php" onclick="window.location='?collect=£200';"> <input type="submit"/> </a> </form> console.log等。

答案 1 :(得分: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>