2010-09-14 61 views
0
$("#inputField").focus() 

當光標對焦texbox我想做一個空間,所以它向右移動一點點!如果你知道我的意思感謝將焦點添加到文本框,然後使用javascript添加空格&nbsp?

function insertParamIntoField(anchor, param, field) { 
     var query = anchor.search.substring(1, anchor.search.length).split('&'); 

     for(var i = 0, kv; i < query.length; i++) { 
      kv = query[i].split('=', 2); 
      if (kv[0] == param) { 
      field.value = kv[1]; 
      return; 
      } 
     } 
    } 


$(function() { 
    $("a.reply").click(function (e) { 
     console.log("clicked"); 
     insertParamIntoField(this, "replyto", $("#inputField")[0]); 

    $("#inputField").focus() 







     e.preventDefault(); 
     return false; // prevent default action 
    }); 
}); 

回答

0

連接的focus事件設置一個空間如果輸入是空的事件處理程序:

$("#inputField").focus(function() { 
    if($(this).val() == "") { 
     $(this).val(' '); 
    } 
}); 

或者你想每次添加一個空格盒子是專注於?然後回調函數體只是需要:

$(this).val($(this).val() + ' '); 

更新:

我明白了,還有最簡單的方法是(忘記附加的事件處理程序focus):

$("a.reply").click(function (e) { 
     console.log("clicked"); 
     insertParamIntoField(this, "replyto", $("#inputField")[0]); 

     $("#inputField").val($("#inputField").val() + ' '); 

     //... 
} 

但是您應該確保點擊兩次鏈接不會導致兩次添加名稱!

+0

感謝您的回答,但我希望它沒有條件!因爲在我的腳本中,焦點僅在鏈接被點擊時設置。 – getaway 2010-09-14 06:12:20

+0

@getaway:然後讓條件成爲。你不必像發佈一樣使用代碼;)但是這會覆蓋該字段的值。或者你像第二個例子那樣做。但是我仍然不明白你的代碼應該如何工作。如果鏈接被點擊兩次會怎麼樣? – 2010-09-14 06:28:21

+0

我的代碼如上所示,發生的是,它完全像twitter,當有人點擊回覆按鈕,然後@username被帶到texbox,並且我想要一個空間後,以避免用戶輸入@usernamegoing到一個派對! !你看到的是附加到@username,這使得用戶@別人或存在的人!感謝和抱歉花了很長時間 – getaway 2010-09-14 07:01:34

0

您可以替換該行:

$("#inputField").focus(); 

有了這個

$("#inputField").val(" ").focus(); 

雖然你可能需要調整你的CSS,而不是把一個空間領域。

input[type=text] { 
    padding-left: 1em; 
} 

UPDATE

我在你的意見你把在Twitter的賬戶通知後它需要一個空間......這裏是解決方案。

$inputField = $("#inputField"); 

$inputField.val($inputField.val() + " ").focus();