2014-01-06 69 views
0

我是新來這一點,想不通爲什麼它不工作:的Javascript否則,如果不工作

所以我有功能:

function testResults() { 
    var answer = document.getElementById("myForm"); 
    if (answer = 'James'); { 
     alert("Good !"); 
    } else if (answer = 'james'); { 
     alert("Good !"); 
    } else { 
     alert("Wrong !"); 
    } 

這裏是<form>

<form name="myform"> 
    Enter your name 
    <input type="text" name="inputbox" value=""> 
    <input type="button" name="button" value="Click" onClick="testResults()" > 
</form> 

而且它不起作用。

+0

作業與比較,'='與'=='與'==='。 – elclanrs

+0

代碼中的問題太多了,我相信在繼續之前應該學習更多。這裏有一個很好的資源:[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide)PS:如果你要提交請確保它們有一個有效的ID以便於選擇;) –

回答

0
<form name="myform"> 
    Enter your name 
    <input type="text" name="inputbox" value="" id="field"> 
    <input type="button" name="button" value="Click" onClick="testResults()" > 
</form> 


<script> 
    function testResults() { 
     var answer = document.getElementById("field").value; 

     if (answer == 'James') 
     { 
      alert("Good !"); 
     } 
     else if (answer == 'james') 
     { 
      alert("Good !"); 
     } 
     else 
     { 
      alert("Wrong !"); 
     } 
    } 
</script> 

爲等於是 '==' 不是單一 '='

+2

仍然不起作用,您不能將表單DOM對象與字符串進行比較 – Saturnix

+0

哎呀抱歉,我沒有看到他錯過了.value – Bruce

+0

好吧,這是一種工作,但不是正確的:不管我說的是什麼,都說錯了,所以它會直到最後,你能幫忙嗎? – Dagged

1

有4個缺陷在這些2行:

var answer = document.getElementById("myForm"); 
if (answer = 'James'); 

第一行與ID myform在檢索元素的頁。由於沒有一個,它將返回NULL並且您的比較總是失敗。

一旦您真正使用正確的ID來檢索輸入,您仍然必須獲取值而不是元素本身。

樣品:

<input type="text" id="test" value="waa"> 
<button onclick="alert(document.getElementById('test').value)">Click me!</button> 

一旦你固定的一切,用==的比較,因爲=是任務,而if後刪除分號(;),因爲它的自我封閉的聲明。

+0

而他沒有關閉他的功能/ –

+0

是啊,我只是計算這兩行中的錯誤,但確實這是一個獨特的第五個錯誤 - 其餘代碼是隻是重複相同的錯誤:P –

+0

我改正了它,但它仍然不起作用 – Dagged

-1

您的代碼中有錯誤。讓我來完善它:

function testResults() { 
    var answer = document.getElementById("myForm"); 
    if (answer == 'James'); { 
     alert("Good !"); 
    } else if (answer == 'james'); { 
     alert("Good !"); 
    } else { 
     alert("Wrong !"); 
    } 
}; 
+0

您無法將HTML節點與字符串進行比較。 –

0

http://jsfiddle.net/48KLN/2/

<form name="myform"> 
    Enter your name 
    <input type="text" name="inputbox" id='textBox' value=""/> 
     <input type="button" name="button" value="Click" onClick="testResults()" /> 
</form> 
     <script> 
      function testResults() { 
    var answer = document.getElementById("textBox").value; 
    if (answer == 'James') { 
     alert("Good !"); 
    } else if (answer == 'james') { 
     alert("Good !"); 
    } else { 
     alert("Wrong !"); 
    } 
} 
     </script> 

你沒下列錯誤

  1. 您可以通過ID,但在HTML表單獲得myForm會只命名
  2. 即使形式將有你試圖比較HtmlFormObject字符串
  3. 如果你使用了設置呃而不是等號
  4. if if「(answer ='James'); 「您添加了;這是不正確的