2011-05-23 3 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

+0

Я не понимаю? –

+0

Не работает 'window.location = 'http: //stackoverflow.com/';' work ..? – Marty

ответ

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 false? –

+1

@Helloise Smit: если вы вернете false, это остановит действие по умолчанию для события, то есть щелчок по кнопке. Возврат true (или ничего вообще) позволит клику, который отправит форму. – Guffa

+0

спасибо..все отлично, еще одна вещь, пожалуйста: у меня есть текстовое поле с отправкой, где пользователь может ввести сообщение и нажать на кнопку отправки, которая затем вызовет мой window.location.href ... как я могу пройти на сообщение в новом окне? моя форма - это «сообщение», а идентификатор textarea - «сообщение»? спасибо –

3

Если вам необходимо открыть новое окно, вы должны использовать метод window.open(). window.location относится к текущему адресу Windows, и будет только - при использовании window.location.reload() - перезагрузить окно CURRENT.

+0

спасибо window.open works, он открывает новое окно, но я хочу, чтобы иметь возможность нажимать на стрелку назад и вернуться на предыдущую страницу, пожалуйста, –

0

Твердые ответы уже, но почему бороться с системой? Особенно, если вы назвали с JQuery или onClick - там не может быть встроенный обратный моя точка - так что вместо этого вы можете просто изменить действие на submit:

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

, то вы можете выбрать любой из если вы нуждаетесь в них или игнорируете, если нет.

Смежные вопросы