如何通过单击按钮在同一选项卡上打开新网页?

时间:2013-07-03 19:09:49

标签: javascript html

我的网页上有一个按钮。它的代码是:

/* code of the other forms  */
<form method="get"  onsubmit="return validation()" > 
     <input type="submit" id="x" value="Search"  onmouseover="mover(this)" onmouseout="mout(this)" /> 
</form>

当我点击按钮时,应验证其他表单的值并在同一选项卡上打开新的网页。我对验证部分没有任何问题。问题是新的网页在新标签页中打开,这不是我想要的。到目前为止,代码是:

 function validation(){
    var x=document.forms["flyrics"]["lyrics"].value;
    if (x==null || x=="")
    {
        alert("Search without Lyrics?");
        return false;
    }

    var y=document.forms["fartist"]["artist"].value;
    if (y==null || y=="")
    {
        alert("Search without Artist Name?");
        return false;
    }

            window.open("songList.html", "_self");      
} 

在最后一行中,它是在同一选项卡上打开新页面的代码。但每次我点击按钮时,都会打开一个新标签。我该如何纠正? 我也尝试过使用以下代码。但我不知道为什么他们都没有在同一个标​​签上打开新页面。

 location.href = "songList";
 window.location="songList.html";
 window.open("songList.html",  "currentWindow", "");

实际问题在哪里?需要帮助来解决它。 我只需要使用javascript和html执行此操作。

4 个答案:

答案 0 :(得分:1)

尝试使用window.location.assign

window.location.assign("songList.html");

答案 1 :(得分:1)

我认为您想要实现的是在提交表单之前先对搜索进行验证?您必须在表单标签中添加动作属性,然后移动return validation()来提交按钮。

看下面我的例子:

这将允许您将songList.html加载到同一标签上。

function validation() {
    var x=document.forms["flyrics"]["lyrics"].value;
    if (x==null || x=="")
    {
        alert("Search without Lyrics?");
        return false;
    }

    var y=document.forms["fartist"]["artist"].value;
    if (y==null || y=="")
    {
        alert("Search without Artist Name?");
        return false;
    }
} 
<!DOCTYPE html>
<body>
<form id="flyrics">
        <input type="text" id="lyrics" value="">
</form>
<form id="fartist">
        <input type="text" id="artist" value="">
</form>

/* code of the other forms  */
<form id="songList" action="songList.html">
        <input type="submit" id="x" value="Search" onclick="return validation()"/> 
</form>
</body>

答案 2 :(得分:0)

如果你做的话

        window.open("songList.html");  

答案 3 :(得分:0)

试试这个

window.location.replace("songList.html");

这对我来说很好用!