Javascript에서 입력 상자에 커서를 설정하는 방법은 무엇입니까?
document.getElementById(frmObj.id).value="";
document.getElementById(frmObj.id).autofocus;
document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed";
위의 코드에서 양식 개체의 값은 완벽하게 설정되어 ""
있지만 텍스트 상자에 커서가 없습니다. 커서가 있기를 원합니다. focus()
입력 상자에만 초점을 맞추고 실제로 커서를 설정하지는 않습니다.
JavaScript 에서는 먼저 컨트롤에 초점을 맞춘 다음 컨트롤을 선택하여 texbox에 커서를 표시합니다.
document.getElementById(frmObj.id).focus();
document.getElementById(frmObj.id).select();
또는 jQuery 를 사용하여
$("#textboxID").focus();
나는 이것이 아주 오래된 질문이라는 것을 알고 있지만 누군가를 도울 수있는 비슷한 문제에 대한 '어리석은'해결책이 있습니다.
JQuery의 Focus 메서드에 의해 선택된 것으로 표시된 텍스트 상자에서 동일한 문제가 발생했지만 커서를 가져 오지 않았습니다.
사실은 무슨 일이 일어나고 있는지보기 위해 디버거 창을 열었고 그 창은 포커스를 훔치고있었습니다. 해결책은 엄청나게 간단합니다. 디버거를 닫으면 모든 것이 정상입니다 ... 테스트에 1 시간이 소요됩니다!
경우에 따라 포커스는 얻지 만 텍스트 필드에 커서가 없습니다. 이 경우 다음을 수행합니다.
document.getElementById(frmObj.id).select();
당신을 물릴 수있는 것 중 하나는 .onmousedown
사용자 상호 작용으로 사용하는 경우입니다. 그렇게 할 때 즉시 필드를 선택하려고 시도 하면 마우스가 다른 것을 누르고 있기 때문에 발생하지 않습니다 . 포커스를 변경하려고 할 때 마우스가 클릭되지 않은 상태이기 때문에 변경 .onmouseup
및 비올라가 이제 focus()
작동합니다.
양식을 제출하고 페이지를 다시로드 할 수있는 충분한 코드를 제공하지 않았거나 페이지에 포커스를 훔치는 포함 된 PDF와 같은 개체가있을 수 있습니다.
다음은 양식 유효성을 검사하는 표준 일반 자바 스크립트 방법입니다. 인라인 스크립트를 제거하는 onubtrusive JS로 개선 할 수 있지만 이것이 시작점입니다. DEMO
function validate(formObj) {
document.getElementById("errorMsg").innerHTML = "";
var quantity = formObj.quantity;
if (isNaN(quantity)) {
quantity.value="";
quantity.focus();
document.getElementById("errorMsg").innerHTML = "Only numeric value is allowed";
return false;
}
return true; // allow submit
}
다음은 HTML입니다.
<form onsubmit="return validate(this)">
<input type="text" name="quantity" value="" />
<input type="submit" />
</form>
<span id="errorMsg"></span>
참조 URL : https://stackoverflow.com/questions/10894638/how-to-set-cursor-to-input-box-in-javascript
'program story' 카테고리의 다른 글
슬라이스 표기법을 사용하여 목록 반전 (0) | 2020.12.15 |
---|---|
AVD 에뮬레이터에서 sdcard 폴더를 보는 방법은 무엇입니까? (0) | 2020.12.15 |
ImportError : psycopg2라는 모듈이 없습니다. (0) | 2020.12.15 |
SQL Server 2008-테이블 제약 조건 가져 오기 (0) | 2020.12.15 |
Go 방법의 기본값 (0) | 2020.12.15 |