2013-07-30 28 views
0

我想寫一些東西后寫入到textarea沒有點擊任何按鈕,但單擊外textarea ..如何實現這一目標?我的代碼...ajax php post點擊外部div

<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上寫入任何信息時......我如何實現這一點?

+3

'$('#post')。change(...)'做你想做的事情嗎? –

+1

確保你的用戶知道會發生什麼事情 - 很容易在意外或故意點擊textarea,提交沒有意義的半寫文本。 –

回答

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(); 
}); 
0

您可以附加一個單擊處理整個文檔,然後如果用戶在文本區域內單擊,則取消該事件。像這樣的東西可能做的伎倆:

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

我用類似這樣的代碼基本上完成同樣的事情(檢查當用戶點擊的東西之外)。這是該代碼的複製和粘貼(輕微更改),我沒有爲您的目的進行測試。實質上,它爲整個文檔添加一個處理程序來處理click事件,然後只在單擊的元素不是textarea時才執行代碼。