1

#text_comment がテキストエリアの ID であるこの関数があります。

$('#text_comment').live('keypress',function (e) {

    if(e.keyCode == 13) {
        textbox = $(this);
        text_value = $(textbox).val();

        if(text_value.length > 0) {
            $(this).prev().append('<div id="user_commenst">'+text_value+'</div>');
            $(textbox).val("");
        } 
    }                                               
});

何が起こっているかというと、Enter/Return キーが押されたときにテキストが追加されます (keyCode 13) が、Enter/Return キーが想定されているように、テキストを 1 行下に移動しています。

テキストボックスの値を「」に設定しても、これは発生しています。

4

5 に答える 5

4

event.preventDefault()はどうですか

于 2011-06-15T09:05:04.843 に答える
2

これを試してくださいevent.stopImmediatePropagation()

$('#text_comment').live('keypress',function (e) {       
          if(e.keyCode == 13) {   
               e.stopImmediatePropagation()
       ///rest of your code
  }
});
于 2011-06-15T09:11:16.620 に答える
2

ケースに入るときは、イベントの伝播を停止してみてください ( http://snipplr.com/view/19684/stop-event-propagations/を参照)。if(e.keyCode == 13)

于 2011-06-15T09:07:15.837 に答える
2

私はこれをテストしました、これはうまくいきます。enter は新しい行を作成しません。

$('#text_comment').live('keypress',function (e) {

    if(e.keyCode == 13) {
        textbox = $(this);
        text_value = $(textbox).val();

        if(text_value.length > 0) {
            $(this).prev().append('<div id="user_commenst">'+text_value+'</div>');
            $(textbox).val("");
        }
        return false;
    }                                               
});

私は疑問に思っていますが、改行を入れたくない場合は、なぜテキストエリアを使用しているのですか?代わりに input type='text' を使用しないのはなぜですか?

于 2011-06-15T09:20:02.130 に答える
1

ここで答えてくださいhttp://jsfiddle.net/Z9KMb/

于 2011-06-15T09:34:48.420 に答える