2010-06-09 5 views
0

Dans mon code javascript j'aiBackslash en JavaScript

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

ici backslash ne fonctionne pas. Quel est le problème? Comment dois-je l'écrire?

exemple: Je veux avoir « x.com \ joe » en utilisant le nom de domaine (x) et fakeusername (Joe), mais le résultat que je reçois est juste joe quand j'utilise « \ »

+1

Pourriez-vous élaborer un peu sur vos résultats? Quelle est la valeur attendue? –

+1

Que voulez-vous dire quand vous dites que ça ne marche pas, que se passe-t-il, et en quoi cela diffère-t-il de ce que vous attendiez? Avez-vous un message d'erreur? – Guffa

+3

Fonctionne bien pour moi: http://jsbin.com/exaze3, votre problème est probablement ailleurs. Le code est-il écrit directement dans le code source HTML ou l'écrivez-vous dans une autre langue? Si oui, vous pouvez avoir besoin de "\\\\". – Kobi

Répondre

2

Comme vous dire qu'il est dans votre code JavaScript plutôt que comme un attribut sur un élément HTML,

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

réglage est-il une valeur de chaîne, délimitée par "". Comme le \\ est dans une chaîne, la valeur de la chaîne est

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

qui signifie que lorsque cette chaîne est exécuté sous forme de code, il est plus valide - il n'y a qu'une seule barre oblique inverse, qui échappe à la seule fermeture citation .

double-échapper à la contre-barre oblique ('\\\\'):

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

ou utiliser une fonction en tant que gestionnaire d'événement au lieu d'une chaîne évaluée.

1

Pete Kirkham a raison: utilisez une fonction à la place de la chaîne.

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