Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пробелы при передачи параметров функции 
:(
    Опции темы
tired
Дата 21.4.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



пребположим есть функция:
 FIO(Name,Dolzhnost)
{
alert(Name + "-" Dolzhnost)
}
если вызывать ее в таком виде: FIO('Иван Иванов', 'Слесарь') то в месте "Иван Иванов" будет ошибка из-за пробела. Решение проблемы возможно если вместо пробела поставить "_" но тогда получается не красиво: Иван_Иванов-Слесарь. может есть какая нить встроиная константа заменяющая символ пробела?

PM MAIL   Вверх
bars80080
Дата 21.4.2008, 11:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



не может быть такой проблемы, косяк в другом месте

(интересно, что проблемы с пробелом часто происходят, когда на серверной стороне формируется инпутбокс, у которого указывается атрибут value либо без кавычек, либо с кавычками, но при этом в самом подставляемом значении тоже есть кавычки)

кстати, 
Код

FIO(Name,Dolzhnost) {
alert(Name + "-" + Dolzhnost); 
}
 пропустил ещё один плюс, опечатка?
PM MAIL WWW   Вверх
tired
Дата 21.4.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



опечатка...
если косяк в другом месте то почему после того как я заменю " " на "_" ошибка не выскакивает?
кста ошибка определяеться как "Незавершенная строковая константа"

Добавлено через 2 минуты и 46 секунд
вобщем вот весь скрипт:
Код

<script language="javascript">
function ShowItem()
{
parent.main.location.href="ShowItem.htm";
};
function move_par(ItemName,ItemCost,ItemType,ItemImage)
{
var ItemName;
var ItemCost;
var ItemType;
var ItemImage;
var a = ItemName;
var b = ItemCost;
var c = ItemType;
var d = ItemImage;
parent.main.document.forms[0].ItemName.value = a;
parent.main.document.forms[0].ItemType.value = c;
parent.main.document.forms[0].ItemCost.value = b;
parent.main.document.forms[0].ItemImage.src = d;};
</script>

вот вызов функции:
Код

<a href="javascript:ShowItem()" onClick=setTimeout("move_par('Counter-Strike',299,'Action','imgCS.jpg')")>Counter-Strike</a>

если вместо "-" в Counter-Strike поставить " " то вылезет ошибка. why???
PM MAIL   Вверх
Fortop
Дата 21.4.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



приведи весь текст формы. 

Подозреваю, что твоя проблема в это строке. Так как твой ItemName  содержит пробел.
parent.main.document.forms[0].ItemName.value = a;


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
ksnk
Дата 21.4.2008, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Может так
Код

parent.main.document.forms[0][ItemName].value = a;
?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
tired
Дата 21.4.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



Fortop, я поэтому тему и создал что не знаю как от этого пробела избавиться кроме как заменить его "_" =))
вариант предложенный ksnk не помогает=((
вот вся страница:
Код

<html>
<head><title></title>
<link href="a.css" rel="stylesheet" type="text/css">
<script language="javascript">

function ShowItem()
{
parent.main.location.href="ShowItem.htm";
};
function move_par(ItemName,ItemCost,ItemType,ItemImage)
{
var ItemName;
var ItemCost;
var ItemType;
var ItemImage;
var a = ItemName;
var b = ItemCost;
var c = ItemType;
var d = ItemImage;
parent.main.document.forms[0].ItemName.value = a;
parent.main.document.forms[0].ItemType.value = c;
parent.main.document.forms[0].ItemCost.value = b;
parent.main.document.forms[0].ItemImage.src = d;};
</script></head>
<body bgcolor="#000000">
<center>
<form>
<p class="orDizzz12pt">Выберите игру:</p>
<br>
<a href="javascript:ShowItem()" onClick=setTimeout("move_par('Counter Strike',299,'Action','imgCS.jpg')")>Counter-Strike</a>
<br>
<a href="javascript:ShowItem()" onClick=setTimeout("move_par('QuakeIII',199,'Action','QuakeIII.bmp')")>Quake III</a>
<br>
<a href="javascript:ShowItem()" onClick=setTimeout("move_par('Bioshock',449,'Action','Bioshock.jpg')")>Bioshock</a>
<br>
<a href="javascript:ShowItem()" onClick=setTimeout("move_par('Prince_of_Persia-Warrior_Within',399,'Action','PoPWW.bmp')")>Prince of Persia - Warrior Within</a>
<br>
<a href="javascript:ShowItem()" onClick=setTimeout("move_par('Prince_of_Persia-The_Two_Thrones',449,'Action','PoPTTT.jpg')")>Prince of 
Persia - The Two Thrones</a>
<br><br><br>
<a href="Menu.htm" onClick="parent.main.location.href='MainFrame.htm'"><h3>На главную<h3></a>
</form>
</center>
</body>
</html>

это типа онлайн магазин на JavaScript.задали в универе сделать. впринципе и так потянет но хочеться чтобы было все красиво.
PM MAIL   Вверх
ksnk
Дата 22.4.2008, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Еще раз
Цитата(Fortop @  21.4.2008,  20:51 Найти цитируемый пост)
приведи весь текст формы. 

Это - не форма, а какое-то недоразумение smile Зачем она здесь вообще - не ясно. Что написано в этом parent.main.document.form[0]?

А зачем тут setTimeout?



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
tired
Дата 22.4.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



setTimeout тут для того чтобы фрэйм успевал прогрузиться и в него потом вписываються программно параметры. если небудет setTimeout будет ошибка типа "Обьект не найден или null". тэги формы мона и опустить впринципе без них тоже работает.
и давайте не уезжать далеко от темы...вопрос как вы помните был про пробелы при передаче параметров функции  smile 
PM MAIL   Вверх
bars80080
Дата 22.4.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



грубо говоря логика системы настолько изощрённая, что мало кто с может дать внятный ответ

даже не влезая в её смысл, вызывает серьёзный вопрос:
зачем некоторому элементу формы с неизвестным заранее именем присваивать значение - тоже самое имя

и тебе кстати ответили, у тебя в строке parent.main.document.forms[0].ItemName.value = a; получается разрыв, если ItemName будет содержать пробел, потому и ошибка


Это сообщение отредактировал(а) bars80080 - 22.4.2008, 10:44
PM MAIL WWW   Вверх
tired
Дата 22.4.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



чорт как то криво первый раз отправил=(((
логика в следущем:
1 скрипт-ShowItem():
загружает в фрэйм документ-шаблон для всех товаров.
2 скрипт-move_par():
передает в фрэйм параметры на основе которых формируеться контент документа-шаблона. seTimeout нужен для того чтобы успевал прогружаться документ-шаблон иначе ошибка объект не найден.

bars80080, элемент известен - это ItemName - текстовое поле. оно находиться в документе-шаблоне, нужно для вывода в него названия товара по ссылке которого был совершен клик.
еще один вопрос: константа "%20" это же пробел? как и где он может использоваться?

PM MAIL   Вверх
bars80080
Дата 23.4.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(tired @  22.4.2008,  21:35 Найти цитируемый пост)
элемент известен - это ItemName - текстовое поле
 если это элемент, почему ему как переменной присваивается некоторое значение?


Цитата(tired @  22.4.2008,  21:35 Найти цитируемый пост)
константа "%20" это же пробел? как и где он может использоваться?
 в url, т.е. в принципе можно заменить пробелы на него, а на сервере пропустить через соотв.функцию, но т.к. судя по всему он будет находиться в имени элемента, гарантировтаь нормальную работу не могу

PM MAIL WWW   Вверх
tired
Дата 23.4.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



bars80080,parent.main.document.forms[0].ItemName.value = a; - эта строчка присваивает не элементу значение а свойству элемента(ООП понимаешь ли=)))все работает кроме варианта с пробелом...как быть?(

PM MAIL   Вверх
Fortop
Дата 23.4.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



tired
document.getElementById()
это работает, поскольку на прошлой неделе сам с похожим воевал, правда в jQuery, где $('#Clutha Gold') воспринималось несколько неадекватно

Добавлено через 2 минуты и 56 секунд
Да, и конечно можешь попробовать getElementsByName(), но его я не проверял


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
smartov
Дата 23.4.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



tired, используйте getElementById... И мой совет - лучше это делать всегда, а про запись document.forms[0]... забыть как страшный сон.
А так же getElementsByName() и getElementsByTagName()
PM MAIL   Вверх
tired
Дата 23.4.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2008

Репутация: нет
Всего: нет



Fortopsmartov а можно поподробнее как это использовать?
с кодом и коментами желательно
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1014 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.