태그 보관물: javascript

javascript

jQuery .val 변경은 입력 값을 변경하지 않습니다.

값에 링크가있는 HTML 입력이 있습니다.

<input type = 'text' value = 'http://www.link.com' id = 'link' />

특정 이벤트의 값을 변경하기 위해 jQuery를 사용하고 있습니다.

$('#link').val('new value');

위의 코드는 텍스트 상자의 값을 변경하지만 코드의 값은 변경하지 않습니다 (값 = ‘http://www.link.com’은 변경되지 않음). 값을 변경하려면 =“도 필요합니다.



답변

attr대신 사용하십시오 .
$('#link').attr('value', 'new value');

데모


답변

값 속성을 변경해도 defaultValue. 코드 ( .html()또는로 검색 됨 innerHTML)에서 value 속성은 value 속성이 아니라을 포함합니다 defaultValue.


답변

Ricardo의 답변에 대해 조금 확장하려면 : https://stackoverflow.com/a/11873775/7672426

http://api.jquery.com/val/#val2

val ()에 대해

이 메서드를 사용하거나 기본 값 속성을 사용하여 값을 설정해도 change 이벤트가 전달되지 않습니다. 이러한 이유로 관련 이벤트 핸들러가 실행되지 않습니다. 실행하려면 값을 설정 한 후 .trigger ( “change”)를 호출해야합니다.


답변

이것은 나에게 일어난 가능한 시나리오입니다. 글쎄요, 누군가에게 도움이된다면 : 코드 어딘가에 모든 텍스트 상자 값을 표시하기 전에 지우는 함수를 사용하는 복잡한 앱을 작성했습니다. 언젠가 jquery val ( ‘value’)를 사용하여 텍스트 상자 값을 설정하려고했지만 그 직후에 ClearAllInputs 메서드를 호출했음을 알아 차리지 못했습니다. 그래서 이런 일이 발생할 수도 있습니다.


답변

내 비슷한 문제는 선택기에 특수 문자 (예 : 마침표)가있어서 발생했습니다.

수정 사항은 특수 문자를 이스케이프하는 것입니다.

$("#dots\\.er\\.bad").val("mmmk");


답변

<script src="//code.jquery.com/jquery.min.js"></script>
<script>
function changes() {
$('#link').val('new value');
}
</script>
<button onclick="changes()">a</button>
<input type='text' value='http://www.link.com' id='link'>


답변

나에게 문제는이 필드의 값을 변경하지 못했다는 것입니다.

$('#cardNumber').val(maskNumber);

위의 솔루션 중 어느 것도 나를 위해 일하지 않았으므로 추가 조사를 통해 다음을 발견했습니다.

DOM 레벨 2 이벤트 사양에 따르면 : 변경 이벤트는 컨트롤이 입력 포커스를 잃고 포커스를 얻은 이후 값이 수정되었을 때 발생합니다. 즉, 변경 이벤트는 사용자 상호 작용에 의해 변경 될 때 발생하도록 설계되었습니다. 프로그래밍 방식 변경으로 인해이 이벤트가 발생하지 않습니다.

해결책은 트리거 함수를 추가하고 다음과 같이 변경 이벤트를 트리거하도록하는 것입니다.

$('#cardNumber').val(maskNumber).trigger('change');