2010-06-09 6 views
0
에서

나는 백 슬래시가 작동하지 않습니다 여기 백 슬래시 자바 스크립트

onchange="document.getElementById('user_name').value = 
document.getElementById('theDomain').value + '\\' + 
document.getElementById('fake_user_name').value" 

있습니다. 문제가 무엇입니까? 어떻게 작성해야합니까?

예 : 나는 당신으로 '\'

+1

결과에 대해 조금 더 자세히 설명해 주시겠습니까? 기대되는 가치는 무엇입니까? –

+1

"작동하지 않는다"고 말하면 무슨 일이 일어나는가, 그것이 예상과 다른 점은 무엇을 의미합니까? 오류 메시지가 나타 납니까? – Guffa

+3

저를 위해 잘 작동합니다 : http://jsbin.com/exaze3, 귀하의 문제는 아마도 다른 곳에서있을 것입니다. 코드가 HTML 소스 코드로 직접 작성 되었습니까? 아니면 다른 언어로 작성하고 있습니까? 그렇다면''\\\\ ''이 필요할 수도 있습니다. – Kobi

답변

2

를 사용할 때 나는 도메인 이름 (x)와 fakeusername (조)하지만 난 얻을 결과를 사용하여 "x.com 조 \"하고 싶지는 조이다

onchange="document.getElementById('user_name').value = 
    document.getElementById('theDomain').value + '\\' + 
    document.getElementById('fake_user_name').value" 

""로 구분 된 문자열 값을 설정, 그것은 당신의 자바 스크립트 코드가 아닌 HTML 요소의 속성으로 말할. \\ 문자열에서와 같이, 문자열의 값은 해당 문자열 코드로 실행되는 경우, 더 이상 유효하지 않습니다 것을 의미한다

document.getElementById('user_name').value = 
document.getElementById('theDomain').value + '\' + 
document.getElementById('fake_user_name').value 

입니다 - 닫는 작은 따옴표를 이스케이프 하나의 백 슬래시는있다 .

중 하나를 두 번 탈출 백 슬래시 ('\\\\') :

onchange="document.getElementById('user_name').value = 
    document.getElementById('theDomain').value + '\\\\' + 
    document.getElementById('fake_user_name').value" 

또는 이벤트 핸들러 대신에 평가 된 문자열로 함수를 사용합니다.

1

Pete Kirkham이 맞습니다. 문자열 대신 함수를 사용하십시오.

element.onchange=function(){ 
    var domain = document.getElementById('theDomain').value, 
     name = document.getElementById('fake_user_name').value; 
    document.getElementById('user_name').value = domain + "\\" + name; 
}; 
관련 문제