Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.02.2011, 10:29
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Передача в функцию переменного количества аргументов
Подскажите, пожалуйста.

Количество аргументов, которые надо передать в функцию, изначально неизвестно. В php передаешь массив, и дело с концом.

Как в js это сделать, ума не приложу.

ПРИМЕР. Функция проверки полей формы на заполненность. Хочу передать в функцию поля, коорые проверять не нужно. В разных случаях количество этих полей разное.

help
Ответить с цитированием
  #2 (permalink)  
Старый 15.02.2011, 10:57
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Если я правильно понял то:

function myFunc(a, b, c, d) {
		alert(arguments.length);
	}
	
	myFunc(1, 2, 3);


С помощью arguments.length узнаешь сколько аргументов ей было передано и выполняешь необходимые действия.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 15.02.2011, 11:10
Аватар для kadabrik
Кандидат Javascript-наук
Отправить личное сообщение для kadabrik Посмотреть профиль Найти все сообщения от kadabrik
 
Регистрация: 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);
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2011, 11:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от Эдди
Как в js это сделать, ума не приложу.
Просто почитай букварь...
http://javascript.ru/arguments
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2011, 13:09
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

ksa Букварь прочитан. Ответ не найден.

walik И сколько мне указывать аргументов в функции?
Можно, конечно, с запасом написать 100 аргументов. Но криво это будет. Неправильно.

kadabrik А как на странице я буду вызывать скрипт. К примеру, если я хочу исключить поля с названиями subject и text?

Как потом аргументы обработать понятно. Вопрос, как передать туда аргументы...
Ответить с цитированием
  #6 (permalink)  
Старый 15.02.2011, 13:12
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Эдди
ksa Букварь прочитан. Ответ не найден.
Судя по вопросам, текст по ссылке вы не читали.
Ответить с цитированием
  #7 (permalink)  
Старый 15.02.2011, 13:14
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

НУ перечту сейчас еще раз внимательнее...

ПРИНОШУ СВОИ ГЛУБОЧАЙШИЕ ИЗВИНЕНИЯ...
С этим все ясно. Вообще в функции не ставлю ни одного аргумента, а передаю, сколько захочу.

Попутный вопрос (уж извините новичка), чтобы не плодить темы.

Функция проверяет поля формы на заполненность. Если поле не заполнено, alert выводит оповещение.
Нажимаю ОК, в форме поля очищаются. Как этого избежать?

Последний раз редактировалось Эдди, 15.02.2011 в 13:17.
Ответить с цитированием
  #8 (permalink)  
Старый 15.02.2011, 13:26
Аватар для kadabrik
Кандидат Javascript-наук
Отправить личное сообщение для kadabrik Посмотреть профиль Найти все сообщения от kadabrik
 
Регистрация: 10.12.2010
Сообщений: 114

Сообщение от Эдди Посмотреть сообщение
Функция проверяет поля формы на заполненность. Если поле не заполнено, alert выводит оповещение.
Нажимаю ОК, в форме поля очищаются. Как этого избежать?
Не очищать поля
Ответить с цитированием
  #9 (permalink)  
Старый 15.02.2011, 13:27
Профессор
Отправить личное сообщение для Эдди Посмотреть профиль Найти все сообщения от Эдди
 
Регистрация: 19.06.2010
Сообщений: 279

Сообщение от kadabrik Посмотреть сообщение
Не очищать поля
Как? (плачу сильно)
Ответить с цитированием
  #10 (permalink)  
Старый 15.02.2011, 13:40
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 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 клацай
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача параметров в функцию yital9 Общие вопросы Javascript 5 13.02.2011 22:06
Передача переменной в функцию для теста со случайным выводом вопросов rockdancer Общие вопросы Javascript 1 06.02.2010 23:13
передача имени элемента в функцию Zubik Общие вопросы Javascript 0 06.10.2009 11:00
передача динамических данных в функцию Ruah Общие вопросы Javascript 4 02.09.2009 22:04
Передача значений в функцию Destrifer Общие вопросы Javascript 2 29.11.2008 17:46