내 html 속성은 다음과 같습니다.
<span>
<input
class="editWidgetName"
type="text"
maxlength="100"
value="Untitled "NAME" 30\10\2017"
style="display:none;padding-right:1px;"
/>
</span>
위의 'editWidgetName'클래스의 값을 가져올 수 없습니다. 항상 '제목 없음'만 가져옵니다. ' "'부분 뒤의 문자열이 생략되었습니다. '"'를 이스케이프하기 위해 자바 스크립트를 시도 value.replace(/\"/g, '\\"')
했지만 결과는 동일합니다.
다시 한 번 다음과 같은 js 함수를 사용하여 값 속성을 인코딩하려고 시도했습니다.
function encodeHTML(s) {
return s.split('&').join('&')
.split('<').join('<')
.split('"').join('"')
.split("'").join(''');
}
그러나 결과는 '정의되지 않음'으로 가져옵니다.
이 문제를 해결할 다른 방법을 제안하십시오. 감사.
문제 해결은 아무 의미가 없습니다. 좋은 습관을 갖는 것이 해결책입니다.
@ProsenjitDutta, 논리, 스타일 및 컨테이너를 분리하는 데 최선을 다하십시오. 시작으로 다음을 수행 할 수 있습니다.
style
속성을 사용하지 마십시오 . 대신 CLASSes 및 ID 속성과 함께 CSS를 사용하십시오.// Maybe typo here (fixed)----v (backslash)
let name = 'Untitled "NAME" 30/10/2017';
// With jQuery:
$('#editWidget').val(name) ;
// Without jQuery
document.querySelector('#editWidget').value = name ;
/**
* Don't hard code the style in the tag
* Use CSS instead (as below)
*
*/
input.editWidgetName {
width: 200px;
padding-right: 1px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>
<!-- v---------- an ID here -->
<input id="editWidget" value="" class="editWidgetName" type="text" maxlength="100" />
<!-- empty value --------^ -->
</span>
function encodeHTML(s) {
return s.replace(/([&<"'])/g, function(match, char){
switch(char){
case '&': return '&';
case '<': return '<';
case '"': return '"';
case "'": return ''';
}
})}
let s = "var=val<pour\"voir'ca'" ;
console.log('s = ', encodeHTML(s));
.as-console-wrapper{max-height:100%!important;top:0;}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다