2017-01-21 69 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();}“' –