Конкатенация в JS

ast-ross

Новичок
Конкатенация в JS

помогите чет никак не выходит!!!
есть функция:

function my_funct (form_and_field) {
var cur_date='document.' + form_and_field + '.value';
alert (cur_date);
}

есть форма my_form и текстовое поле my_date
и ссылка:

<a href=# onclick=my_funct('my_form.my_date')>link</a>

Alert выдает текстом document.my_form.my_date.value
А надо значение которое в этом поле...

если в функцции вручную указать

var cur_date=document.my_form.my_date.value;

то все прекрасно работает... Я понял что я превратил переменную в текст но не въеду как правильно конкотинировать...
 

akd

dive now, work later
Команда форума
правильно будет немного по другому:
<input type=.... id="SOMEINPUT" ... />
<a href="" onclick="myFunc('SOMEINPUT')">...</a>

function myFunc (objID)
{
alert(document.getElementById(objID).value);
}
 

ast-ross

Новичок
Немного конкретезирую:

Задача: Написать всплывающий календарь для заполнения текстового поля преднозначенного для даты. Значит к примеру, имеем некую форму form_1 и некое поле field_1 рядом с полем распологаеться иконка календарика при клике на которую становиться видимым iframe в который через src загружаеться calendar.php в этот календарь надо методом GET передать имя формы, имя поля и текущее значение поля для прокрутки календаря на эту дату т.е. src=./calendar.php?form=form_1&field=field_1&date=07.10.2006 В calendar.php дата нужда для прокрутки календаря на эту дату а имена формы и поля для того что бы по событию onclick переписать значение поля на ту дату по которой кликнули и следом скрыть iframe
Так вот для того чтобы оформировать этот URL для calendar.php я создаю некую js-функцию calendar() а на икону вешаю <a href=# onclick=calendar(this,'form_1','field_1');>my_img_icon</a>

Теперь о функции. Ну вот она приняла имена формы и полей а для формирования url для src мне надо еще и value которое в этом поле этой формы. Кстати а как из этой функции переписать этот src для iframe? После этого iframe делаеться видимым и производиться его абсолютное позиционирование согласно принятого this

Ну в общем такая вот фигня...

Вопросы:
1. Как в функции calendar() получить значение value зная имя формы и поля
2. Как переписать src для iframe
3. Как передать из iframe в родителя (top) значение для поля формы
4. Как из iframe передать родителю (top) сделать этот же iframe невидимым

Извините за токое количество вопросов JS занялся только на этой неделе..

-~{}~ 07.10.06 13:25:

правильно будет немного по другому:
<input type=.... id="SOMEINPUT" ... />
<a href="" onclick="myFunc('SOMEINPUT')">...</a>

function myFunc (objID)
{
alert(document.getElementById(objID).value);
}
Спасибо! Помогло!!!

-~{}~ 07.10.06 13:51:

Все! Все написал все работает! все сделал через document.getElementById

Если кому надо могу дать исходники
 

Farsh

~ on ~ high ~ wave ~
Простите за то , что поднял давнюю тему , но она как раз подходит для того , что мне надо .
Имеется строка :
string += "<span title='header=[hoho] body=[a] fade=[on] fadespeed=[1] requireclick=[on]'>abc</span>";
Как в таком случае можно подставить переменную в header , body ну и тд.?
Обычным способом с ковычками не получается , не видит что внутри скобок . Заранее спасибо .
 

Farsh

~ on ~ high ~ wave ~
=))
string += "<span title='header=['" + var + "'] body=[a] fade=[on] fadespeed=[1] requireclick=[on]'>abc</span>";
Я это имел ввиду.

-~{}~ 18.11.07 16:07:

Ну что , никто не знает ? :< нужно до завтра
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Farsh
В чем проблемы то?
в конектации ++?
Сами же написали для 1-й переменнйо
<script type="text/javascript">
var1 = 1;
var2 = 2;
var3 = 3;
var4 = 4;
var5 = 5;
string = "<span title='header=['" + var1 + "'] body=['" + var2 + "'] fade=['" + var3 + "'] fadespeed=['" + var4 + "'] requireclick=['" + var5 + "']'>abc</span>";
alert(string);
</script>
 

Farsh

~ on ~ high ~ wave ~
А , значит что-то я у себя нагородил , так как не работает :/
Спасибо , пойду копаться .

-~{}~ 18.11.07 17:09:

------------------------------------------------------------------------------------
Опишу все толком и подробно .
Есть хтмл строка :
<span title='header=[da] body=[dada] fade=[dadada]'></span>
Нужно создавать такую строку динамически с js :

var1 = 'da';
var2 = 'dada';
var3 = 'dadada';
string = "<span title='header=['" + var1 + "'] body=[omg] fade=['" + var3 + "']'>abc</span>";

Но проблема в том , что созданная таким образом строка в итоге будет выглядеть вот так :
<span title='header=['da'] body=['dada'] fade=['dadada']'></span>
Тем самым из-за одиночных ковычек функция не может прочитать данные в скобках .
И вот сама функция , которая парсит эту строку :

// получает body в атрибуте title
function getParam(body,node.title) {
var reg = new RegExp('([^a-zA-Z]' + param + '|^' + param + ')\\s*=\\s*\\[\\s*(((\\[\\[)|(\\]\\])|([^\\]\\[]))*)\\s*\\]');
var res = reg.exec(list);
var returnvar;
if(res)
return res[2].replace('[[','[').replace(']]',']');
else
return '';
}

J
Нужно что нибудь придумать с ковычками , но до меня никак не дойдет что :(
 

kruglov

Новичок
Ну, используйте вместо внешних одинарных кавычек двойные.

Вот перед квадратными скобками в регулярном выражении почему-то догадались \ поставить.

Или какие-нибудь кавычки третьего-четвертого вида введите, что, символов на клавистуре мало? ` или ~, к примеру.
 

Farsh

~ on ~ high ~ wave ~
Автор оригинала: kruglov
Ну, используйте вместо внешних одинарных кавычек двойные.

Вот перед квадратными скобками в регулярном выражении почему-то догадались \ поставить.

Или какие-нибудь кавычки третьего-четвертого вида введите, что, символов на клавистуре мало? ` или ~, к примеру.
Что-то вообще не доходит. Простите если я тугой . И этот код писал не я , я просто его переделываю под себя .
Но :
1) в чем разница , будут ли внешние ковычки двойные или одинарные , все равно будет путаница .
2) что то покопался - покопался в регулярках , но так и не понял до конца , что значат все символы
3) эээ ... Это как , если у меня строки ..
 

Farsh

~ on ~ high ~ wave ~
вы о &#039; и &quit; ?
Я перепробовал все возможные способы ...
Или я чего то не понимаю?
 

cDLEON

Онанист РНРСlub
Farsh
Бросайте играть в игры...Не благодарное это дело 8)
www.google.com "экранирование ковычек"
 

Farsh

~ on ~ high ~ wave ~
kruglov
Это опечатка была . :)
В общем фишка в том была , что какая бы там кавычка ни была ( экранированная - неэкранированная ) , все равно значение не прочитается .
Я потратил на этот гемор кучу времени , забил , и просто переделал этот долбанный .js немного по другому , и сейчас все отлично работает . :)
 

dimagolov

Новичок
Farsh
неужели так:
Код:
 string = "<span title='header=[" + var1 + "] body=[omg] fade=[" + var3 + "]'>abc</span>";
не работало?
 

Farsh

~ on ~ high ~ wave ~
dimagolov
нет . Не знаю в чем там бред был , но смысл :
допустим var1 = 'var1'
если написать header=['var1'] , то хеадер читает нормально , он будет равен = 'var1' (вместе с кавычками )
если написать header=[" + var1 + "] , или как нибудь по другому аналогично , то при наведении ( так как тег title ) будет выведено header=[' . То есть почему не читает -.-
Главное что сейчас все работает. :)
 
Сверху