2010-06-09 168 views
0

在我的javascript代码我有反斜杠在JavaScript

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

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

例如: 我想通过使用域名(x)和fakeusername(JOE),但结果我得到有“x.com \乔”就是乔当我使用“\”

+1

你能否详述一下你的结果?期望值是多少? – 2010-06-09 12:02:10

+1

当你说它“不起作用”,发生了什么,这与你的期望有什么不同?你有任何错误信息? – Guffa 2010-06-09 12:02:16

+3

适用于我:http://jsbin.com/exaze3,您的问题可能在其他地方。代码是直接用HTML源代码编写的,还是用另一种语言编写的?如果是这样,你可能需要''''''''。 – Kobi 2010-06-09 12:04:59

回答

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

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; 
};