点击外部div的ajax php帖子

时间:2013-07-30 14:17:06

标签: php jquery ajax

我希望在将其写入textarea之后发布一些东西而不点击任何按钮,但是在textarea外面点击..我怎么能实现?我的代码......

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

AJAX:

$('#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 ...我怎样才能实现呢?

2 个答案:

答案 0 :(得分: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();
});

答案 1 :(得分:0)

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

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

我使用与此类似的代码来完成基本相同的事情(检查用户何时点击某些内容)。这是该代码的复制和粘贴(略有改动),我没有为您的目的进行测试。从本质上讲,它为click事件的整个文档添加了一个处理程序,然后只有在单击的元素不是textarea时才执行代码。