jQuery提交表单输入不工作

时间:2014-04-11 22:20:59

标签: javascript jquery html forms

在下面的脚本中,我已经获得了允许我通过按Shift + Enter添加新行的代码,但是当我按下输入时,代码什么都不做。我也没有错。我已经删除了调整大小的插入符号,所以没有必要弄乱它。我的代码中有什么错误阻止我提交表单?

免责声明:是的我知道这个主题有很多帖子,但没有一个能解决我的问题,所以我希望这是一个新问题。

    <script>
    $('#myFormActivity .commentTextarea').keypress(function(event){
        if (event.keyCode==13 && !event.shiftKey) {
            event.preventDefault();
            $( "#myFormActivity" ).submit(function(event1) {
                alert("sent");
                // Stop form from submitting normally
                event1.preventDefault();

                // Get some values from elements on the page:
                var $form = $( this ),
                activityid = $form.find( "input[name='activityid']" ).val(),
                comment = $form.find( "textarea[name='comment']" ).val(),
                url = "process/insertComment.php";

                // Send the data using post
                var posting = $.post( url, { activityid: activityid, comment: comment } );

                // Put the results in a div
                posting.done(function( data ) {
                    $(this).children('.commentTextarea').val('');
                });
                return false;
            });
            return false;
        }
    });
    </script>

class commentTextarea是分配给表单内部的textarea元素的类,其ID为myFormActivity。

1 个答案:

答案 0 :(得分:2)

当你说

时,你在按键事件中做了什么
$( "#myFormActivity" ).submit(function(event1) {

将事件绑定到表单提交,而不是触发它。类似的东西(我实际上没有测试过)以下是你想要的更多内容(请注意脚本标签上的mime-type以及事件应该在文档准备中绑定):

<script type="text/javascript">
$(function(){
    $('#myFormActivity .commentTextarea').keypress(function(event){
        if (event.keyCode==13 && !event.shiftKey) {
            event.preventDefault();
            $( "#myFormActivity" ).submit();
            return false;
        }
    });
    $( "#myFormActivity" ).submit(function(event1) {
        alert("sent");
        // Stop form from submitting normally
        event1.preventDefault();

        // Get some values from elements on the page:
        var $form = $( this ),
        activityid = $form.find( "input[name='activityid']" ).val(),
        comment = $form.find( "textarea[name='comment']" ).val(),
        url = "process/insertComment.php";

        // Send the data using post
        var posting = $.post( url, { activityid: activityid, comment: comment } );

        // Put the results in a div
        posting.done(function( data ) {
            $(this).children('.commentTextarea').val('');
        });
        return false;
    });
});
</script>