我的网页上有一个按钮。它的代码是:
/* 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执行此操作。
答案 0 :(得分:1)
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");
这对我来说很好用!