2013-02-16 61 views
0

我試圖模仿twitter bootstrap的文本輸入行爲。我在Twitter Bootstrap的輸入中注意到,當用戶點擊那裏時,光標始終停留在文本輸入的開頭。但是,「搜索」文本不會消失,直到用戶開始輸入。jQuery將光標保持在文本輸入的開始位置,直到用戶開始輸入

我得到的大部分工作,除了我,光標不停留在文本輸入的開始。任何想法如何我可以實現這一點?

這裏是我的jQuery代碼至今:

$('input[title]').each(function() { 
    if($(this).val() === '') { 
     $(this).val($(this).attr('title')); 
    } 
    $(this).keydown(function() { 
     if($(this).val() == $(this).attr('title')) { 
      $(this).val('').removeClass('blur'); 
     } 
    }); 
    $(this).mousedown(function() { 
     if($(this).val() == $(this).attr('title')) { 
      $(this).blur().val(''); 
      $(this).focus().val($(this).attr('title')); 
     } 
    }); 
    $(this).blur(function() { 
     if($(this).val() === '') { 
      $(this).val($(this).attr('title')).addClass('blur'); 
     } 
    }); 
}); 
+1

順便說一句了新的瀏覽器u可以使用佔位符attr的,而不是標題 – Josh 2013-02-16 04:46:44

+0

剛剛更新了我的答案和jsbin鏈接,我認爲這是你想要的。 – Jai 2013-02-16 05:39:42

回答

0

這一定會幫助你:http://jsbin.com/ohoyer/2/edit

jQuery(function ($) { 
     var $inputExample = $('#input-ex'); 
     var a = false; 
     $inputExample.click(function() { 
     $inputExample.caretToStart(); 
     }); 

     $inputExample.keypress(function(){ 
     if(a == false){ 
     $(this).val(''); 
     a = true 
     }else{ 
     $inputExample.caretToEnd(); 
     } 
    }); 
}); 

這是用於此插件:

`https://gist.github.com/DrPheltRight/1007907/raw/ 
    b1ce3b710616f9ee15a6b8ca2b03e35756d3d816/jquery.caret.js` 
+0

謝謝Jai!雖然我同意使用placeholder屬性可能是最佳做法,但我實際上正在學習如何使用javascript/jquery來完成此操作。 – 2013-02-16 15:48:57

0

使用此添加焦點輸入

$("#inputid").focus(); 
1

你所描述的可能是一個屬性,叫做佔位符:

<input type="text" placeholder="Type something…"> 
相關問題