在我的javascript代码中我有
onchange="document.getElementById('user_name').value =
document.getElementById('theDomain').value + '\\' +
document.getElementById('fake_user_name').value"
这里反斜杠不起作用。问题是什么? 我该怎么写呢?
例如: 我希望通过使用域名(x)和fakeusername(joe)获得“x.com \ joe”,但是当我使用'\'
时,我得到的结果就是乔答案 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;
};