2013-07-21 29 views
0

我是JavaScript新手,我正在製作一個web應用程序。基本上它是一個使用html5的簡單備忘錄。如何在jquery或javascript中停止特定元素的退格?

我的HTML代碼:

<ul contenteditable="true"> 
    <br/>abc<br/> 
    def<br/> 
    ghi<br/> 
</ul> 

和我的javascript:

window.onkeydown = backspace; 

function backspace() { 
    var key = event.keyCode || event.charCode; 
    var lis = document.getElementsByTagName("li"); 
    for (var i = 0; i < lis.length; i++) { 
     var li = lis[i]; 

     if (li.innerHTML == "<br>") { 
      if (!li.id) { 
       li.id = "ttt"; 
       if (key == 8) { 
        return false; 
       } 
      } 
     } 
    }  
    return true; 
} 

我試過基本退格鍵返回false,但問題是,如果li標籤是空的其他li標籤不會拿退格事件,即使它有一個字符。

+0

你是否試圖阻止內容在所有情況下被刪除或只是內容的特定部分? – Kyle

回答

0
$('input').keydown(function(e){ 
    if(e.keyCode == 8) { 
     e.preventDefault(); 
     alert('we arent allowing deletes'); 
    } 
}); 

http://jsfiddle.net/dq8tr/3/

0

您可以添加事件處理程序,文檔按鍵 然後檢查是否退格,你想「李」

$(document).keypress(function(e) { 

      var key = e.which; 

      if (key == 8 && e.target.attributes[0].value != "text") { 
       return false; 
      } 

     }); 

你可以可以用型替換文本元素的類型你想要的元素

+0

是的,你是對的有3 li標籤我想要停止當li標籤爲空backspace問題是backspace將停止該元素和所有其他元素,所以 我讓我的功能設置爲特定元素的ID當我得到元素var l = doc.getlementbyid(ttt) if(l.innerhtml ==「
」){ key == 8 return false; } –

相關問題