0

私は小さなコメントボードを作成し、送信せずにテキスト入力を使用していますが、送信にはリターンキーを使用しています。

<input type="text" id="comment" placeholder="Comment..." class="formInputWall" />
<!-- hide submit button -->
<input type="submit" value="Submit" class="post" id="10" style="position: absolute; left: -9999px" />

次に、jquery関数があります。

$(".post").click(function(){

        //attaching the click event to submit button
        var element = $(this);
        var Id = element.attr("id"); 
        var comment = $("#comment").val();

        var dataString = 'comment='+ encodeURIComponent(comment); 

        if(comment=='')
        {

        }
        else
        {
            $("#loading").show();
            $("#loading").fadeIn(400).html(' Adding Comment.....');

            $.ajax({
            type: "POST", // form method
            url: "/pages/includes/list_wall_post.php",// destination
            data: dataString,
            cache: false,

            success: function(html){

                $('#wallWall').append('<div class="msgs_row"><div class="msgs_pic"><a href="/' + user_url + '"><img src="' + live_prof_pic + '"></a></div><div class="msgs_comment"><a href="/' + user_url + '" style="text-decoration:none;"><span class="msgs_name">' + name + '</span></a> ' + comment + '<br /><span class="msgs_time">Just now...</span></div></div>');

                $("#loadpost").append(html); // apend the destination files
                $("#loading").hide(); //hide the loading div
                $("#nc").hide();
                $("#comment").val(""); //empty the comment box to avoid multiple submission
                $('textarea').autogrow();

                }
            });

        }
        return false;
    });

これはすべてうまく機能しますが、代わりにテキストエリアを使用して、戻るボタンを使用してフォームを投稿したいと思います。

だから私はtxt入力を削除し、次のように置き換えます:

<textarea id="comment" class="formInputWall"></textarea>

そして、以下を追加します。

$(function(){
    $('#comment').on('keyup', function(e){
        if (e.keyCode == 13) {
            // do whatever you want to do, for example submit form
            $(".post").trigger('click');

        }
    });
});

問題は、現在2回送信されているのに、理由がわからないことです。何か案は?

4

2 に答える 2

0

問題を修正する別の方法を見つけました:

$('#comment').bind('keypress', function(e){
       var code = e.keyCode ? e.keyCode : e.which;
       if(code == 13) // Enter key is pressed
       {
           // Do stuff here
           $(".post").trigger('click');
       }
    });
于 2013-03-16T12:05:29.347 に答える
0

追加return false;

$(function(){
    $('#comment').on('keyup', function(e){
        if (e.keyCode == 13) {
            // do whatever you want to do, for example submit form
            $(".post").trigger('click');
            return false;
        }
    });
});

または使用e.preventDefault();

$(function(){
    $('#comment').on('keyup', function(e){
        if (e.keyCode == 13) {
            e.preventDefault();
            // do whatever you want to do, for example submit form
            $(".post").trigger('click');

        }
    });
});
于 2013-03-16T11:39:44.223 に答える