2014-10-08 61 views
0

在這個簡單的待辦事項列表中,當文本字段中沒有任何內容時,如何停止仍然創建新段落的程序。當Add To List爲空時,我想要該功能只輸出警報,沒有別的。我已經嘗試了很多東西,但都沒有成功。任何幫助是極大的讚賞。謝謝!如何停止發生在Javascript中的事件

JS小提琴= http://jsfiddle.net/Renay/g79ssyqv/20/

<p id="addTask"> <b><u> To-Do List </u> </b> </p> 
<input type='text' id='inputTask'/> 
<input type='button' onclick='addText()' value='Add To List'/> 
function addText(){ 
    var input = document.getElementById('inputTask').value; 
    var node=document.createElement("p"); 
    var textnode=document.createTextNode(input) 
    node.appendChild(textnode); 
    document.getElementById('addTask').appendChild(node); 

    var removeTask = document.createElement('input'); 
    removeTask.setAttribute('type', 'button'); 
    removeTask.setAttribute("value", "Remove"); 
    removeTask.setAttribute("id", "removeButton"); 
    removeTask.addEventListener('click', function() { 
     node.parentNode.removeChild(node); 
    }, false) 
    node.appendChild(removeTask); 

    if (input == "") { 
     alert('Please add an entry'); 
    } 
} 
+0

也不要忘記修剪你的輸入值。 '''!=''' – aleha 2014-10-08 09:22:30

回答

3

移動你的if聲明頂端,你input變量分配給剛過,並添加一個return把它打出來的功能:

function addText() { 
    var input = ...; 

    if (input == "") { 
     alert("..."); 
     return; 
    } 

    var node ...; 
    ... 
} 

Amended JSFiddle demo

當函數調用return語句時,停止執行此函數。如果指定,則將給定值返回給函數調用方。如果省略表達式,則返回undefined。 (MDN

+0

它工作!非常感謝!絕對從這裏的所有幫助中學到很多東西! – Renay 2014-10-08 09:21:51

0

您可以在「製作」部分搬來你else塊

var input = document.getElementById('inputTask').value; 

if (input == "") { 
    alert('Please add an entry'); 

} else { 

var node=document.createElement("p"); 
var textnode=document.createTextNode(input) 
node.appendChild(textnode); 
document.getElementById('addTask').appendChild(node); 

var removeTask = document.createElement('input'); 
removeTask.setAttribute('type', 'button'); 
removeTask.setAttribute("value", "Remove"); 
removeTask.setAttribute("id", "removeButton"); 
removeTask.addEventListener('click', function() { 
    node.parentNode.removeChild(node); 
}, false) 
node.appendChild(removeTask); 
} 
相關問題