Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > вызов функций


Автор: sani79 13.2.2007, 16:19
Ребята подскажите пожалуйста, а то бьюсь уже битый час. Есть две функции:

Код

function  f_alert(seln,nn,text, caption, form)
{
alert('sddsd');
var str=text;
var tmp = '/<'+caption+'>/';
var reg=new RegExp("<"+caption+">", "ig");
var result=str.replace(reg, seln);
text=result;
form.text.value = result;

}

function f_change()
{


document.demoform.Name.value="2";
f_alert(demoform.Name.value,Name.name, demoform.text.value, demoform.Namec.value, demoform);
document.demoform.Family.value="1";
f_alert(demoform.Family.value,Family.name, demoform.text.value, demoform.Familyc.value, demoform);
document.demoform.Otchestvo.value="3";
f_alert(demoform.Otchestvo.value,Otchestvo.name, demoform.text.value, demoform.Otchestvoc.value, demoform);


}


Функция f_change генерится PHP скриптом, но это не суть... она стоит на событие onload тэга BODY... ну так вот, проблема заключается в том, что в этой функции отробатывает только первая строчка, а дальше не хочет. При этом функция f_alert вызывается на этой же страничке по нажатию кнопки с аналогичными параметрами и все работает. Странно....

Автор: skyboy 13.2.2007, 16:57
ошибка высыпает? тестировал под чем(под каким браузером)? 
Цитата(sani79 @  13.2.2007,  15:19 Найти цитируемый пост)
document.demoform....

что означает выделенное? какое-то собственноручно созданное свойство?

Автор: sani79 13.2.2007, 17:01
skyboy, браузер Firefox 2, demoform - это имя формы... обращение document.demoform из скрипта проходит, оно корректное... ошибка не выдается просто отрабатывает единожды строчка document.demoform.Name.value="2"; и выполнение функции прекращается...

Добавлено @ 17:02 
Тьфу ты наврал... тестировал по IE6

Автор: SelenIT 13.2.2007, 19:14
sani79, так вот и разница, по-моему... обращение к форме как document.demoform работает, а просто как demoform (во второй строчке) - уже нет. Имхо, еще надежнее обращаться как document.forms["demoform"], особенно если это все генерится на сервере...

Автор: sani79 15.2.2007, 02:16
SelenIT, Спасибо за совет, но к сожелению не помогло.... да генерится на сервере... к сожалению никаких ошибок нет, непонятно куда копать... изнутри формы вызов этой функции работает, вот такой код:

Код

f_alert(this.form.Otchestvo.value,Otchestvo.name, this.form.text.value, this.form.Otchestvoc.value, this.form);


вызывается по событию onchange, объекта <input type="text"> и все работает... странно... 

Автор: SelenIT 15.2.2007, 14:46
sani79, в последнем примере все правильно - this.form элемента формы указывает на саму форму, которой этот элемент принадлежит, и через нее без проблем можно обращаться к другим ее элементам. А  просто по имени формы - браузер "не понимает"...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)