2013-05-07 85 views
0

我需要清空並專注於按鍵上的textarea按鍵是enter.i我認爲我寫了正確的代碼,但有時候textarea變空了,但沒有發生焦點,有時會發生焦點,但沒有運氣排空這個object.i使用了很多不同的代碼,但沒有運氣。輸入空白並專注於textarea

這裏是我的JS:

<script> 
$(document).ready(function() { 
    $("#data").focus(function() { 
    $(this).empty(); 
    $(this).focus(); 
    }); 
}) 


    // when the client hits ENTER on their keyboard 
    $('#data').keypress(function(e) { 


    $this = $(this); 
    if($this.val().length == 1) 
    { 
     var x = new RegExp("[\x00-\x80]+"); // is ascii 

     var isAscii = x.test($this.val()); 

     if(isAscii) 
     { 
      $("#data").css({"direction": "ltr", "text-align": "left"}); 
     } else { 
      $("#data").css({"direction": "rtl", "text-align": "right"}); 
     } 
    } 


     if (e.shiftKey && e.keyCode == 13) { 
      $(this).val($(this).val() + "\n"); 
      return; 

      } 
      if(e.which == 13) { 
       if($this.val().length == 0){ 
        alert('your value is empty') 
       } 

       var now = time(); 
       if(now+0.5 > counter){ 
       counter = now; 
       $(this).blur(); 
       $('#datasend').focus().click(); 
      }else{ 
      } 
      } 
     }); 
    }); 

,這裏是我的html部分:

<div class="wrap"> 
    <div class="rooms"> 
    <div class="clear"></div> 
     <div class="roomsicon"> 
chatrooms 
     </div> 
     <ul id="rooms"> 
     </ul> 
    </div> 
    <div class="chat_box_container"> 
    <div class="chat_box" id="mydiv"> 
    <div id="conversation"></div> 
    </div> 
    <div class="input_field"> 
     <textarea id="data" placeholder="type your text ... " ></textarea> 
     <input type="button" id="datasend" value="send" /> 
    </div> 

    </div> 
    <div class="users"> 
     <div class="usersicon">online users </div> 

     <ul id="users"> 
     </ul> 
    </div> 

    </div> 
    <!-- clear float --> 
    <div class="clear"></div> 
+1

撥弄 – PraJen 2013-05-07 13:12:55

+0

份額輸入的鍵碼是13. – tymeJV 2013-05-07 13:14:53

+0

e.which == 13,我想我用'13太...沒辦法分享小提琴,因爲它是一個聊天系統當我sumbit聊天消息將apear在聊天室 – HiDd3N 2013-05-07 13:17:01

回答

1

empty()不會刪除值。

設置.val("");

你基本上導致的無限循環調用焦點的焦點事件中。不好。

$("#data").focus(function() { 
    $(this).val(''); 
}); 

此外,爲什麼重新創建元素上已有的HTML5佔位符屬性?

+0

我用這個,但沒有運氣..生病分享小提琴很快 – HiDd3N 2013-05-07 13:14:31

+0

我需要一個焦點發生像Facebook ..然後當用戶發佈他的消息聊天另一個焦點發生在框中我應該如何實現這一目標? – HiDd3N 2013-05-07 13:20:48

0

您的代碼中沒有包含ID爲「data」的元素。此外,您將#keypress綁定在#數據元素上,當焦點不在元素內時,該數據元素當然不會觸發。 嘗試將事件綁定到文檔而不是textarea。

+0

是的,「」 – 2013-05-07 13:17:23

+0

我想我有..這是你的意思?