簡體   English   中英

使用innerHTML和onclick事件添加元素

[英]Add elements With innerHTML and onclick event

 start = document.forms[0].start, end = document.forms[0].end, result = document.getElementById('result'), btn = document.getElementById('btn'), selector = document.getElementById('selector'), i = start.value; btn.onclick = ()=> { "use strict"; for (i; i < end.value ; i++) { selector.innerHTML += '<option>' + i + '</option>'; } } 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>challenge</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" media="screen" href="selector.css" /> </head> <body> <header> <h1>challenge 2 </h1> <h2>Create an HTML select</h2> </header> <section id="input"> <div class="container"> <form> <input type="text" name="start" id="start" > <input type="text" name="end" id="end"> <button value="generate" id="btn"> generate</button> </form> </div> </section> <section id="result"> <select name="years" id="selector"> </select> </section> <script src="selector.js"></script> </body> </html> 

應該為我的<select>創建一個新的<option> ,但是它只執行1秒鍾,然后所有東西都消失了。

我嘗試在控制台上打印i ,但是即使在控制台上也能打印結果,並且所有內容都消失了。

我確信我做的每件事都很好,那么在這里工作的解決方案是什么?

如果您要向選擇中添加新選項,請使用“ appendChild()”函數:

 var form = document.getElementByTagName("form")[0];
 var btn = document.getElementById('btn');
 //To avoid refresh the page when the form is submited.
 form.addEventListener("click", function(e){e.preventDefault()},false); 
    btn.onclick = () => {
     var result = document.getElementById('selector'),
     var option= document.createElement("option");
     option.innerHTML = "some text";
     result.appendChild(option); 
    }

每次單擊添加按鈕時,都會在選擇中添加新選項

 start = document.forms[0].start, end = document.forms[0].end, result = document.getElementById('result'), btn = document.getElementById('btn'), selector = document.getElementById('selector'), i = start.value; btn.onclick = ()=> { 'use strict'; for (i; i < end.value ; i++) { selector.innerHTML += '<option>' + i + '</option>'; } } 
  <section id="input"> <div class="container"> <form> <input type="text" name="start" id="start" > <input type="text" name="end" id="end"> <button type="button" value="generate" id="btn"> generate</button> </form> </div> </section> <section id="result"> <select name="years" id="selector"> </select> </section> 

在按鈕中使用type =“ button”。

作為代碼上的簡單示例,只需添加參數事件,並防止表單提交的默認事件,您還可以更改

<button value="generate"  id="btn" type='button'> generate</button>

btn.onclick = (event)=> {
    "use strict";
     for (i;  i < end.value ; i++) {
        selector.innerHTML += '<option>' + i + '</option>';
     }
event.preventDefault();
 }

當您單擊按鈕時,將提交表單。

onload事件可用於設置按鈕的click事件。

阻止提交:

<form onsubmit="return false;">

JS:

window.onload = function() {
   btn = document.getElementById('btn');

    btn.onclick = function() {
       start = document.forms[0].start;
       end = document.forms[0].end;
       result = document.getElementById('result');
       selector = document.getElementById('selector');
       i = start.value;

       for (i;  i < end.value ; i++) {
          selector.innerHTML += '<option>' + i + '</option>';
       }
    }
}   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM