2010-09-14 59 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();