
15.02.2011, 10:29
|
|
Профессор
|
|
Регистрация: 19.06.2010
Сообщений: 279
|
|
|
Передача в функцию переменного количества аргументов
Подскажите, пожалуйста.
Количество аргументов, которые надо передать в функцию, изначально неизвестно. В php передаешь массив, и дело с концом.
Как в js это сделать, ума не приложу.
ПРИМЕР. Функция проверки полей формы на заполненность. Хочу передать в функцию поля, коорые проверять не нужно. В разных случаях количество этих полей разное.
help 
|
|

15.02.2011, 10:57
|
 |
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Если я правильно понял то:
function myFunc(a, b, c, d) {
alert(arguments.length);
}
myFunc(1, 2, 3);
С помощью arguments.length узнаешь сколько аргументов ей было передано и выполняешь необходимые действия.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|

15.02.2011, 11:10
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 10.12.2010
Сообщений: 114
|
|
Сообщение от Эдди
|
Подскажите, пожалуйста.
В php передаешь массив, и дело с концом.
Как в js это сделать, ума не приложу.
|
На самом деле почти также - передать объект.
function foo(obj)
{
alert((obj['width'])+' '+ (obj['height']));
}
var obj = new Object();
obj['width'] = 100;
obj['height'] = 120;
foo(obj);
|
|

15.02.2011, 11:28
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,304
|
|
|
Сообщение от Эдди
|
|
Как в js это сделать, ума не приложу.
|
Просто почитай букварь...
http://javascript.ru/arguments
|
|

15.02.2011, 13:09
|
|
Профессор
|
|
Регистрация: 19.06.2010
Сообщений: 279
|
|
ksa Букварь прочитан. Ответ не найден.
walik И сколько мне указывать аргументов в функции?
Можно, конечно, с запасом написать 100 аргументов. Но криво это будет. Неправильно.
kadabrik А как на странице я буду вызывать скрипт. К примеру, если я хочу исключить поля с названиями subject и text?
Как потом аргументы обработать понятно. Вопрос, как передать туда аргументы... 
|
|

15.02.2011, 13:12
|
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
Сообщение от Эдди
|
|
ksa Букварь прочитан. Ответ не найден.
|
Судя по вопросам, текст по ссылке вы не читали.
|
|

15.02.2011, 13:14
|
|
Профессор
|
|
Регистрация: 19.06.2010
Сообщений: 279
|
|
|
НУ перечту сейчас еще раз внимательнее...
ПРИНОШУ СВОИ ГЛУБОЧАЙШИЕ ИЗВИНЕНИЯ...
С этим все ясно. Вообще в функции не ставлю ни одного аргумента, а передаю, сколько захочу.
Попутный вопрос (уж извините новичка), чтобы не плодить темы.
Функция проверяет поля формы на заполненность. Если поле не заполнено, alert выводит оповещение.
Нажимаю ОК, в форме поля очищаются. Как этого избежать?
Последний раз редактировалось Эдди, 15.02.2011 в 13:17.
|
|

15.02.2011, 13:26
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 10.12.2010
Сообщений: 114
|
|
Сообщение от Эдди
|
Функция проверяет поля формы на заполненность. Если поле не заполнено, alert выводит оповещение.
Нажимаю ОК, в форме поля очищаются. Как этого избежать?
|
Не очищать поля 
|
|

15.02.2011, 13:27
|
|
Профессор
|
|
Регистрация: 19.06.2010
Сообщений: 279
|
|
|
|
|

15.02.2011, 13:40
|
 |
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
<html>
<head>
<script language="JavaScript">
function check() {
field1 = document.getElementById( "field1" );
if (field1.value == '')
alert('Не заполнено поле field1');
}
</script>
</head>
<body>
<form name="form1" onsubmit="check(); return false;">
<input type="text" id="field1" /> <br />
<input type="text" id="field2" /> <br />
<input type="submit"/>
</form>
</body>
</html>
Вот появляется alert сообщение, поля не очищаются, в чем проблема ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
|
|