2009-07-01 5 views
0

просто пытается проверить равенство в этой части кода, но получить сбой.Проверка равенства в Javascript

<input type="text" name="dave_blah"/> 
<input type="text" name="dave_bleh"/> 

Затем я получаю доступ к значениям имен каждого из этих входов и присваиваю их двум переменным, name1 и name2. Затем я извлекаю первую часть имени, ограниченную «_».

var oldName = name1.name.split('_',1);//dave 
var thisName= name2.name.split('_',1);//dave 
alert(oldName); 
alert(thisName); 
if(oldName !== thisName){//if "dave" is not equal to "dave" 
alert("name difference = "+ oldName + " " + thisName); 
} 

Тем не менее, при запуске этого кода сообщение оповещает независимо (я тоже пытался! = Тоже). В принципе, предупреждение не должно выполняться. Вечером довольно поздно, так что это, вероятно, очевидно, но может ли кто-нибудь указать этот нуб в правильном направлении? Если я удалю оператор not из оператора if - функция работает по желанию.

ответ

4

thisName и oldName являются массивы, сделать что-то вроде этого:

var oldName = name1.name.split('_',1)[0]; //dave 
var thisName= name2.name.split('_',1)[0]; //dave 

И я думаю, что он должен работать.

+0

Yea, String.prototype.split возвращает массив. – seanmonstar

+0

это тоже сработало - легко пропустить. Я забыл, что он возвращает массив просто потому, что я возвращал только одно значение, поэтому он проверял true на тот факт, что они оба являются массивами (поэтому работа с тирепией работала). Это чище - скрипт обновлен! Спасибо за вашу помощь. – sunwukung

2

OK. Я обсуждал проблему. В сравнении было показано, что участники теста являются объектами, а не строковыми значениями содержимого. Итак, я решил это, выставив результаты в строку.

Смежные вопросы