JavaScript中的反斜杠

时间:2010-06-09 11:59:07

标签: javascript

在我的javascript代码中我有

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

这里反斜杠不起作用。问题是什么? 我该怎么写呢?

例如: 我希望通过使用域名(x)和fakeusername(joe)获得“x.com \ joe”,但是当我使用'\'

时,我得到的结果就是乔

2 个答案:

答案 0 :(得分:2)

正如您所说,它是在您的JavaScript代码中,而不是作为HTML元素的属性,

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

设置字符串值,由""分隔。由于\\在字符串中,因此字符串的值为

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 :(得分: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;
};