我有一个带有onClick的提交按钮:
<div id="messageDiv">
<form>
<textarea name="message" rows="10" cols="20"></textarea></textarea>
<br /><br />
<input type="submit" value="Send" onClick="sendmail()">
<input type="reset" value="Reset" name='reset'>
</form>
</div>
然后我收到了sendmail:
function sendmail()
{
window.location.href = "http://www.rainbowcode.net/index.php/profiles/mail?="+mailid;
window.location('http://www.rainbowcode.net/index.php/profiles/mail?='+mailid);
//return true;
}
mailid
是一个全局变量,它在另一个JS函数中设置,它确实包含正确的值。为什么window.location
没有打开我的页面?
如果我用mailid手动打开它,它可以正常工作..
答案 0 :(得分:56)
设置位置工作正常,但随后提交表单,这将重新加载当前页面。
从方法返回false:
function sendmail() {
window.location.href = "http://www.rainbowcode.net/index.php/profiles/mail?="+mailid;
return false;
}
并在事件中返回该状态以停止提交:
<input type="submit" value="Send" onclick="return sendmail()">
答案 1 :(得分:3)
如果您需要打开新窗口,则应使用window.open()方法。 window.location指的是当前的Windows地址,仅在使用window.location.reload()
时 - 重新加载CURRENT窗口。
答案 2 :(得分:0)
已经有了可靠的答案,但为什么要打击系统?特别是如果您使用jquery或onClick
进行调用 - 可能没有内联返回是我的观点 - 所以您只需更改submit
上的操作:
document.form.action = 'http://www.rainbowcode.net/index.php'
然后,如果需要,可以选择任何表单变量,否则忽略。
答案 3 :(得分:0)
尝试使用replace
功能
window.location.replace('http://www.rainbowcode.net/index.php/profiles/mail?='+mailid)
答案 4 :(得分:0)
我花了2天的时间尝试这里和其他地方显示的每个解决方案,但没有成功。然后,我删除了form
标记,由于没有submit
按钮,该标记没有用,而使用以下方法解决了问题:
window.location = 'mypage.php', true;