[Javascript] 텍스트 상자의 텍스트가 선택되었는지 확인하는 방법?


Answers

대신 숫자 점과 선택의 벽을 치는 대신 onchange 이벤트의 값을 확인하여 쉽게 올라갈 수 있습니다.

HTML :

<input type="text" onchange="ValidateNumericValue(this);" />

JS :

function ValidateNumericValue(oInput) {
    var blnRequired = true; //set to false if allowing empty value

    var sValue = oInput.value;
    if (blnRequired && sValue.length == 0) {
        alert("Please enter a value");
        oInput.focus();
        return;
    }

    var numericValue = parseFloat(sValue);
    if (isNaN(numericValue)) {
        alert("Value is not a valid number");
        oInput.focus();
        return;
    }

    //put back to make 2.15A back to 2.15
    oInput.value = numericValue + "";
}

이 값이 변경되면 값을 확인하고 사용자가 다른 요소로 이동하면 유효하지 않을 때 경고하고 포커스를 다시 설정합니다.

라이브 테스트 케이스 : http://jsfiddle.net/yahavbr/NFhay/

Question

나는 숫자 문자를 허용하고 사용자가 점 (.)을 두 번 이상 입력하지 못하게하는 텍스트 상자 <input type='text'> 가지고있다. 문제는 텍스트 상자의 텍스트를 선택한 경우 사용자가 내용을 점으로 덮어 쓰려하므로 허용 된 것입니다. 질문은, 어떻게 그 텍스트 상자에 텍스트가 선택되어 있는지 여부를 자바 스크립트에서 알 수 있습니다.

감사




다음 코드를 사용하여 페이지에서 선택한 요소의 ID를 가져올 수 있습니다.

elem_offset = document.getSelection().anchorOffset;
elem = document.getSelection().anchorNode.childNodes[elem_offset];
alert(elem.id);