我在學(xué)習(xí)用原生js寫一個輪播圖,我想實現(xiàn)一個可以通過點擊按鈕改變value的input輸入框,如下圖:點擊之后input的value被改變了,但是結(jié)果一閃而過,又變成了點擊之前的值。下面是我用少量的代碼來復(fù)現(xiàn)這個問題。html代碼如下:<form><input type="text" id="interval"><button id="plusBtn">+</button></form>js代碼如下: var change = document.getElementById("plusBtn"),
t = document.getElementById("interval");
t.value = 1;
t.value = 3;
change.onclick = function () {
t.value=5;// setTimeout(function (){t.value=5;},0);
}這段代碼的效果是input的value會顯示3,說明input的value可以被js改變,而且也會反映在頁面上。我試著用setTimeout(0)改變代碼執(zhí)行順序,結(jié)果也一樣。后來經(jīng)過我試驗,發(fā)現(xiàn)問題出在form標(biāo)簽上。如果我把form標(biāo)簽去掉,click中的代碼是有效的,html如下圖 <input type="text" id="interval">
<button id="plusBtn">+</button>這是為什么呢?
當(dāng)一個button被form標(biāo)簽包裹時button的點擊事件(改變Input的value)無效?
一只萌萌小番薯
2018-09-05 14:14:36