2012-11-14 2 views
5

HTML의 jQuery .focus() 모든 미리 작성된 텍스트를

<input id="formloginusername" type="text" name="username" placeholder="Username" value="Pre-filled-from-database"></input> 

JS 강조되고 강조 표시됩니다. 사용자가 채워진 텍스트 뒤에 커서를 놓은 것처럼 커서를 필드에 표시하기 만하면됩니다.

감사합니다.

+1

브라우저 기본 동작입니다. – adeneo

+0

나는 adeneo에 동의한다. 그 외에, 당신은 입력에 close 태그를 넣을 필요가 없다. 대신에 다음과 같이 입력을 닫는다. VIDesignz

답변

14

여기에 멋진 약간의 트릭은 ...

$(document).ready(function() { 
    var $field = $("#formloginusername"), 
     oldVal = $field.val(); 
    $field.focus().val('').val(oldVal); 
}); 

DEMO :

+1

Perfect! 감사! – GiantDuck

+0

이것은 아주 좋은 예입니다. 감사합니다. 문제는 다음과 같습니다. 이제는 페이지로 이동하여 집중하지만 사용자가 입력을 시작하면 텍스트가 지워지지 않고 추가됩니다. 즉 귀하의 가치는 '여기에서 검색하십시오!' 당신은 '대학 수학 서적'을 입력하면 '여기에서 검색! 대학 수학 서적'이됩니다. 이것을 피하는 방법? EDIT : $ ("input.search-input-header") [0] .reset(); 작동하지만 확인을 클릭하면됩니다. 초점 설정은 어떻게하고 입력을 시작하면 취소됩니까? – DnfD

+1

@DavidPardy - 오래된 브라우저에 대해 걱정하지 않는다면, 당신이'placeholder' 속성의 기본 동작을 설명한다고 생각합니다. '' – ahren

0

http://jsfiddle.net/X7Y8S/ 그냥이 할 것 : 나는 당신의 방법은이다 사용하여 크롬에서 발견 한 것은

$('#field').focus().val($("#field").val()); 
0

Hopstream을, 커서는 텍스트의 끝에서 끝났다. 커서를 텍스트를 강조 표시하지 않고 필드의 시작 부분에 초점을 맞추는 방법이 필요했습니다. . 이것은 나를 위해 일한 :

$ ('#의 elementId로부터') 각 (함수() { $ (이) .focus(); this.selectionEnd = this.selectionStart; });

관련 문제