2017-01-21 65 views
-1

所以即時通訊編輯表thingy,我發現了一個很好的例子,但我遇到了一些問題。HTML編輯​​使用javascript

<td contenteditable="true" class="hover" onBlur="saveToDatabase(this,'question','1')" onClick="showEdit(this);">Blab Bla 1</td> 

好了,所以這就是我echo'ed線由數據庫和的onblur =存在爲1,所以我可以很容易地將其保存上的模糊,以及點擊我編輯TD的ID。

因此,而不是blured來保存數據庫,我想使它onkeypress(enter)= SaveToDatabase,但後來我認爲這是可能的,因爲數據庫回聲它是內嵌的JavaScript,所以我需要找到一種方法來使它onkeypress事件(13〜輸入)將它保存到數據庫..

+0

'showEdit()'做了什麼?它可以做的是將​​的內容封裝在一個表單中,以便用戶可以按回車鍵並提交表單,並且可以通過捕獲表單的提交事件來處理任何想用Javascript執行的操作。 –

回答

0

你可以做這樣的事情

HTML

onkeypress="if(checkIfEnter(event)){saveToDatabase(this,'question','1')}"  
//or 
onkeypress="if(checkIfEnter(event)){this.blur();}" 

JS

function checkIfEnter(e) { 
    e = e || window.event; 
    if (e.keyCode != 13) {return false}; 
    e.preventDefault(); 
    return true; 
} 
+0

工作完美,但問題是,當我按Enter,一個新行開始,我需要它來消除焦點或刪除選擇td –

+0

@MoemenWalid嘗試'onkeypress =「if(checkIfEnter(event)){this.blur(); }「',它應該觸發blur事件,這將保存到數據庫 – LGSon

+0

固定加e.preventdefault()如果鍵輸入是真的 '函數checkIfEnter(E){ \t \té= E後|| window.event; \t \t if(e.keyCode!= 13){return false}; \t \t e.preventDefault(); \t \t return true;如果(checkIfEnter(event)){this.blur();}「' –