Разъясните 2 момента в javascript, плиз.
Шамиль Абдуллин
Добры день. 
Помогите/объясните 2 момента:
1) почему то у меня не работает метод watch(). или работает как то непонятно. Пробовал запускать примеры с сайта - не заработали. Этот метод еще жив? или как можно по другому организовать слежение за изменением переменной/свойством.
Скрипт с сайта мозиллы:
var o = { p: 1 };

o.watch('p', function (id, oldval, newval) {

console.log('o.' + id + ' changed from ' + oldval + ' to ' + newval);
return newval;
});
o.p = 2;
o.p = 3;
delete o.p;
o.p = 4;
o.unwatch('p');
o.p = 5;
 
2) Подскажите как подставлять значение переменной не в виде строки. Пример "проблемы" ниже в коде:
<body>

<form action="" name="form1">
<input type="text" width="100" name="firstname" onblur="test('firstname')" value="123123" /> <span id="firstname"></span><br>
<input type="text" width="100" name="lastname" onblur="test('lastname')" /> <span id="lastname"></span><br>
<input type="text" width="100" name="email" onblur="test('email')" /> <span id="email"></span><br>
</form>
<script language="javascript">
function test(name){
if(name == "firstname") a = document.forms.form1.firstname;
if(name == "lastname") a = document.forms.form1.lastname;
if(name == "email") a = document.forms.form1.email;
b = a.value.length;
if((b < 3) || (b > 32)) document.getElementById(name).innerHTML = "Ошибка";
else document.getElementById(name).innerHTML = "";
}
</script>

в функции нельзя просто подставить name и сделать так: a = document.forms.form1.name; - не работает. Поэтому пришлось использовать Условие. Нету ли какого либо более изящного способа подставить значение переменной?
Шамиль Абдуллин больше 1 года назадСпасибо 0
0 чел.