2012-10-26 23 views
1

退房此鏈接: http://humorjots.com/Barry/BarryWashington.htm了window.location不工作當按鈕被點擊

腳本中的一部分,上面寫着:

if(emailInput.value != '' && zipInput.value != ''){ 
    window.location = "sea206.html"; 
} 

出於某種原因在加載sea206.html不起作用。但是,當您在開發人員控制檯中鍵入window.location = 'sea206.html'時,它會加載該頁面。我不明白爲什麼當點擊按鈕時它不起作用。 if語句確實有效。如果在語句中插入警報,則單擊按鈕時會運行警報。

+2

也許條件不符合,請先嚐試打印您的值 – Ibu

+0

您是否有附加到表單的操作或方法?它們通常會導致問題 –

+0

您可以調用'emailInput.click()',然後檢查是否存在值,如果是'''',並且類似於'zipInput'。自動填充的值使其不會輸入'if'語句。 –

回答

4

你的代碼發生了什麼,它執行的按鈕的默認功能將自動提交表單。

解決的辦法是,你必須添加虛假回報您submitButton.onclick功能,因此它不會提交表單,並重定向到所需的位置

if(emailInput.value != '' && zipInput.value != '') 
{ 
    window.location = "/Barry/sea206.html"; 
    return false; 
} 
+0

是的,這也行。謝謝!我首先看到了尼爾的回答,但是他的名聲更高,所以你得到了支票。謝謝。 – Chief120

+0

那沒關係。無論如何,我很高興我能幫助你。 :) –

1

當我轉到您的頁面並單擊兩個輸入字段並讓它們爲空時,它會自動填充您的佔位符文本。所以它永遠不會是空的。

當我輸入emailInput.value進入控制檯時,我會得到"Email"。模擬ZipCode。

所以,你應該嘗試

if (emailInput.value != 'Email' && zipInput.value != 'Zip Code') { 
    window.location.href = "sea206.html"; 
} 

我看了你的腳本代碼,你寫submitbutton.onclick ...儘量讓你的按鈕中的onclick事件:

<button id="submitButton" onclick='javascript:submitForm();' /> 

有了這段JavaScript代碼在你<script>...</script>部分:

function submitForm() { 
    if (emailInput.value != 'Email' && zipInput.value != 'Zip Code') { 
    window.location.href = "sea206.html"; 
    } 
} 

它工作嗎?

+0

我知道他們不會是空的,這就是我所說的'!=''',因爲它不等於沒有。 – Chief120

+0

是的,這是正確的,但這不是問題的關鍵。我會編輯我的答案。 – sn3ek

+0

你的代碼仍然不能解決我的問題。 – Chief120

3

按鈕的默認操作是提交表格。這會覆蓋您的位置更改。如果您實際上不會提交任何內容,那麼現在您不需要包含<form>元素。但是,如果您確實需要不提交按鈕,則需要使用type="button"屬性。

+0

耶穌你是對的。這是最怪異的說'按鈕'裏面的'type ='button''。哇。謝謝。 – Chief120