2011-05-23 55 views
19
页面

我有一个的onClick提交按钮:window.location的()不工作,不开放

<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

你为什么要将location.href和调用位置设置为一个函数? – Nathan 2011-05-23 07:32:01

+0

我不明白? – 2011-05-23 07:34:41

+0

不是'window.location ='http://stackoverflow.com/';'工作..? – Marty 2011-05-23 07:35:54

回答

49

设置位置工作正常,但随后表单被提交,它将重新加载当前页面。

返回从方法错误:

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

谢谢! return true和return之间的差异是什么? – 2011-05-23 07:44:15

+1

@Helloise Smit:如果你返回false,它将停止事件的默认动作,即点击按钮。返回true(或者完全没有)将允许点击,它将提交表单。 – Guffa 2011-05-23 07:57:55

+0

谢谢..所有的事情都很好,请稍等:我有一个textarea与提交,用户可以输入一个消息,然后点击提交,然后将调用我的window.location.href ...我怎么能通过在新窗口的消息?我的表单是“帖子”,textarea的ID是“留言”?谢谢 – 2011-05-23 08:21:25

3

如果您需要打开一个新的窗口,你应该使用window.open()方法。 window.location引用当前窗口地址,并且只会在使用window.location.reload()时重新加载CURRENT窗口。

+0

谢谢window.open的作品,它会打开一个新窗口,但我希望能够点击后退箭头并返回前一页请 – 2011-05-23 07:38:08

0

固体答案已经但是为什么打制?特别是如果你叫用jQuery或onClick - 有可能不是一个内嵌的回报是我的观点 - 所以不是你可以只改变对submit行动:

document.form.action = 'http://www.rainbowcode.net/index.php'

,那么你可以选择任何的如果你需要它们,可以创建变量,或者如果不需要,可以忽略。