使用jquery对在div中按下的输入执行操作

时间:2013-10-12 09:53:52

标签: jquery

有一些类似的线程,我已经检查过并测试过了。但是对我的情况不适用。

我有评论框,我想在用户按Enter键时发表评论。

<div contenteditable="true" class="commentMark" id="commentMark-<?php  echo $row['p_id'];?>" onblur="if (this.value=='') this.value = 'Write a comment'" onfocus="if (this.value=='Write a comment') this.value = ''" onKeyPress="return SubmitComment(this,event)" wrap="hard" name="commentMark" style=" background-color:#fff; overflow: hidden;">Write a comment</div>

脚本:

$(function(){
 $('.commentMark').keypress(function (e) {
    if (e.keyCode == 13) {
        alert('You pressed enter!');
    }
 });
});

// $("$commentMark").keypress(function (e) ..

也不会执行任何操作。

这里有什么问题?

更新 我还检查了它的工作情况。但不知道我的localhost有什么问题。 它看起来像。

wall.php

<script type="text/javascript">
$(function(){
 $('.commentMark').keypress(function (e) {
    if (e.keyCode == 13) {
        alert('You pressed enter!');
    }
 });
});
</script>
<?php
<div contenteditable="true" class="commentMark" id="commentMark-<?php  echo $row['p_id'];?>" onblur="if (this.value=='') this.value = 'Write a comment'" onfocus="if (this.value=='Write a comment') this.value = ''" onKeyPress="return SubmitComment(this,event)" wrap="hard" name="commentMark" style=" background-color:#fff; overflow: hidden;">Write a comment</div>
?>

现在有什么问题吗?因为它仍无法在我的localhost上运行。

2 个答案:

答案 0 :(得分:1)

您的代码运行正常,只有一个问题,您确定在您的代码中使用

$('.commentMark').keypress(function (e) {

因为我也可以看到另一行代码

// $("$commentMark").keypress(function (e) ..

即使是评论,但要确保它没有被使用。因为$未在选择器中使用! .#与CSS类似。

修改

使用此:

<div onkeydown="alrtme()"></div>

嘿,他们必须写下所有其他属性,但只是更新div中的onkeydown。

然后将功能更新为

function alrtme(){
  if (e.keyCode == 13) {
    alert('You pressed enter!');
  }
});

这是一个简单的,当div上有keydown事件时会运行。并且会运行,如果输入密钥,则会出现警报!

编辑小提琴中的错误:

我打算编辑小提琴,然后我想我应该找到return并猜测我找到了什么,

function SubmitComment(myfield,e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;
if (keycode == 13)
{

}
else
return true;
}

它是最后一个,SubmitComment是按下键时的功能。并且您已将enterkey返回设置为nothing或false。在那里更改并将其写为:

function SubmitComment(myfield){
  if (event.keyCode == 13){
      /* 
       * you don't need to use the keycode variable, just use them as this..
       * and then submit it ..
       */ 
  }
else
return true;
}
祝你好运!

答案 1 :(得分:1)

请确保您已包含jQuery库。我检查了代码及其工作原理。你可以在这里查看。

JSFiddle