2017-07-06 37 views
0

你好我想通過使用一個窗體開始數字和顯示evens數量來使javascript顯示一個evens數字。用戶將輸入起始號碼並輸入要顯示的號碼。 說7開始的數量是3應顯示8 10 12.只需要一些方向。感謝我如何做一個循環來顯示下一個3偶數?

我的代碼:

<html> 
<head> 
<title>evens</title> 
<div class="container"> 
      <h1>Enter Number</h1> 
      <form name="number" class="form-inline"> 
      <div class="form-group"> 
      <label for="starting">Starting Number</label> 
      <input type="text" id="starting" class="form-control"> 
      </div> <div class="form-group"> 
       <label for="step">numbers of evens</label> 
       <input type="text" id="step" class="form-control"> 
      </div> 

  <button type="button" onclick="evenDisplay()" class="btn" >submit</button> 



<script> 

function evenDisplay() { 

    var starting = document.getElementById("starting").value; 
    var step = document.getElementById("step").value; 
    var evens = []; 

    for (i = starting; i <=12; i++) { /* this loop would show as much as evens number as long value of i<= set to and doesn't care if the user enter the number of evens */ 
     i % 2 || evens.push(i); 
    } 
    console.log(evens) 

} 
    </body> 
</html> 
+0

你有幾個標籤沒有關閉。 – mjw

回答

0

你在代碼中有幾個bug。我想我固定它:

function evenDisplay() { 

    var starting = parseInt(document.getElementById("starting").value); 
    var step = parseInt(document.getElementById("step").value); 
    var evens = []; 

    for (i = starting+(starting%2), j=0; j <step; i+=2, j++) { 
     evens.push(i); 
    } 
    console.log(evens); 
} 

window.onload = function(){ 
    document.getElementById("btn").onclick = evenDisplay; 
} 

CodePen

您需要的id = 「BTN」 添加到您的按鈕,這個工作。

Btw定義HTML中的definind事件處理程序是非常不鼓勵的。

+0

謝謝。已添加btn。 – Rnhep

0
for (i = starting; step==evens.length ;i++) { 
    i % 2 || evens.push(i); 
} 
+0

謝謝你也會試試。 – Rnhep

0

一切看起來很好,但因爲要循環,直到evens包含step值你是一個while循環可能會更好。

var currentVal = starting; 
while(evens.length < step){ 
    currentVal % 2 || evens.push(currentVal); 
    currentVal++; 
} 
+0

謝謝while循環完美。 – Rnhep

0

您正在使用的昏迷在JavaScript中,你應該使用半冒號和你錯過許多標籤。請參閱下面的更正的代碼。我已經收錄了你丟失東西的評論:

<!DOCTYPE html > 
<head> 
<title>evens</title> 

<script> 

function evenDisplay() { 

var starting = document.getElementById("starting").value; //SEMI-COLON HERE 
var step = document.getElementById("step").value; //SEMI-COLON HERE 
var evens = []; 

for (i = starting; i <=12; i++) { 
    i % 2 || evens.push(i); 
} 
    console.log(evens); //SEMI-COLON HERE 
} 
</script> <!--you had no closing script tag--> 
</head> <!--you had no closing head tag--> 
<body> <!--you had no opening body tag--> 
<div class="container"> 
     <h1>Enter Number</h1> 
     <form name="number" class="form-inline"> 
     <div class="form-group"> 
     <label for="starting">Starting Number</label> 
     <input type="text" id="starting" class="form-control"> 
     </div> <div class="form-group"> 
      <label for="step">numbers of evens</label> 
      <input type="text" id="step" class="form-control"> 
     </div> 

     <button type="button" onclick="evenDisplay()" class="btn" >submit</button> 
</form> <!--CLOSING FORM TAG HERE--> 
</div> 


</body> 
</html> 
+0

謝謝,我應該在複製並粘貼之後進行雙重檢查。 – Rnhep

0

function evenDisplay() { 
 

 
    var starting = parseInt(document.getElementById("starting").value); 
 
    var step = parseInt(document.getElementById("step").value); 
 
    if(!isNaN(starting)&&!isNaN(step)){ 
 
    var evens = []; 
 
    var x=(step*2)+starting; 
 
    for (i = starting+1; i <=x; i++) { /* this loop would show as much as evens number as long value of i<= set to and doesn't care if the user enter the number of evens */ 
 
     i % 2 || evens.push(i); 
 
    } 
 
    console.log(evens); 
 
} 
 

 
else{console.log("Nan");} 
 
}
<div class="container"> 
 
      <h1>Enter Number</h1> 
 
      <form name="number" class="form-inline"> 
 
      <div class="form-group"> 
 
      <label for="starting">Starting Number</label> 
 
      <input type="text" id="starting" class="form-control"> 
 
      </div> <div class="form-group"> 
 
       <label for="step">numbers of evens</label> 
 
       <input type="text" id="step" class="form-control"> 
 
      </div> 
 

 
      <button type="button" onclick="javascript:evenDisplay();" class="btn" >submit</button>​

在這裏,我使用的公式=(步驟* 2)+開始循環用所要求的範圍也我檢查是否isNaN對於輸入值

+0

非常感謝你的幫助 – Rnhep

相關問題