在Javascript中加载带参数的URL

时间:2015-08-26 00:08:09

标签: javascript php

我有一个简单的处方集,以及一个清除文本输入的按钮。我想使用函数erase()来加载带有空参数的URL。使用location.href不起作用。

怎样才能使这个功能起作用?

此代码位于名为' page.php':

的文件中
    <html>
<head>

<script>

function erase(){
    window.location.href = "page.php?firstname=&lastname=" // not working
}

</script>

</head>

<body>

<form action='page.php' method='get'>

<table>

<?php

if(empty($_GET['firstname'])) echo "<tr><td>Firstname:</td><td><input type='text' name='firstname'></td></tr>";
else{
    echo "<tr><td>Firstname:</td><td>{$_GET['firstname']}";
    echo "<input type='hidden' name='firstname' value={$_GET['firstname']}></td></tr>";
}

if(empty($_GET['lastname'])) echo "<tr><td>Lastname:</td><td><input type='text' name='lastname'></td></tr>";
else{
    echo "<tr><td>Lastname:</td><td>{$_GET['lastname']}";
    echo "<input type='hidden' name='lastname' value={$_GET['lastname']}></td></tr>";
}


?>

<tr><td><input type='submit' value='Send'></td>
<td><button onclick='return erase()'>Erase</button></td></tr>
</table>
</form>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

好的,最后我得到了答案。我在这里发布,如果有人有类似的问题。

在Firefox中,当您按下按钮时,即使它不是处方集按钮,Firefox也会调用表单处理程序。默认处理程序是页面本身,因此它会重新加载忽略Javascript代码的页面。

简单的解决方案是添加一个“返回假”&#39;在erase()的末尾。好的解决方案是添加按钮ID并使用:

window.onload = function() {
    document.getElementById("buttonID").onclick = function(e) {
        e.preventDefault() // NECESARY IN FIREFOX TO AVOID EVENT HANDLER
        window.location.href= 'page.php?firstname=&lastname='
    }
}

工作正常。也许有人可以提供更详细的解释。

问候!