0

我想在将其写入文本区域后发布一些内容,而不单击任何按钮,而是单击文本区域外部。我怎样才能做到这一点?我的代码...

<form action="javascript:parseResponse();"  id="responseForm">
<textarea align="center" name="post" id="post">Write something</textarea>
<input type="button" id="submit" value="submit" />
</form>

阿贾克斯:

$('#responseForm').submit(function({$('#submit',this).attr('disabled','disabled');});

    function parseResponse(){
    var post_status = $("#post");
    var url = "post_send.php";

    if(post_status.val() != ''){

        $.post(url, { post: post_status.val()}, function(data){
        $(function(){
        $.ajax({
            type: "POST",
            url: "home_load.php",
            data: "getNews=true",
            success:function(r)
    {
        $(".container").html(r)
            },
    })
    })  

        document.getElementById('post').value = "";

    });

        }
    }

我想删除按钮...当用户在 textarea 之外单击时,它将自动提交信息...textarea 之外的整个主体将充当提交按钮...当用户在 textarea 上写入任何信息时。 ..我怎样才能做到这一点?

4

2 回答 2

2

尝试以下操作:

$(document).on("click", function(e) {
    var $target = $("#YOUR_ELEMENT");
    if ($target.has(e.target).length === 0) {
        your_submit_function();
    }
});

您还可以将提交功能附加到blur事件以改进功能:

$(document).on("click", function(e) {
    var $target = $("#YOUR_ELEMENT");
    if ($target.has(e.target).length === 0) {
        your_submit_function();
});

$("#YOUR_ELEMENT").on("blur", function() {
    your_submit_function();
});
于 2013-07-30T14:21:55.123 回答
0

您可以将单击处理程序附加到整个文档,然后如果用户在文本区域内单击,则取消该事件。这样的事情可能会奏效:

$( document ).on( "click", function( ev ) {
    if( $( ev.target ).index( $( "#post" )) == -1 ) {
    // User clicked outside the text area.
    }
} );

我使用与此类似的代码来完成基本相同的事情(检查用户何时点击了某物之外)。这是该代码的复制和粘贴(稍作改动),我尚未针对您的目的进行测试。本质上,它为单击事件向整个文档添加了一个处理程序,然后仅在单击的元素不是您的文本区域时才执行代码。

于 2013-07-30T14:25:02.820 回答