Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Функция JS выдаёт ошибку

3.9K
19 сентября 2006 года
KuRST
29 / / 31.08.2004
Здравствуйте.
Имеется в отдельном файле js функция

function My(input,output,cost,box,ostatok)
{
var num = document.getElementById(input).value;
var res=cost*num;
if(ret==0){document.getElementById(box).checked='';
}else{document.getElementById(box).checked='1';
}
document.getElementById(output).value=res;
if(num>=ostatok){
document.getElementById(input).value=ostatok;
res=cost*ostatok;
document.getElementById(output).value=res;
}
}

На странице имеются элементы input:

<input id="4_input" value="0" type='text' size="20" onkeyup="setTimeout(My('4_input','4_output','100','4','2'), 10);">
<input id="4_output" value="0" type='button' size='5'>

То есть функция перемножает пару чисел и возвращает во второй input, но при этом выводится ошибка - "Недопустимый аргумент"
С чем это может быть связано?
И ещё вопрос - в функции есть проверка превышения введённого пользователем числа над остатком - срабатывает только если первая цифра больше или равна первой остатка.
Как сделать, чтобы при любом превышающем остаток числе срабатывала замена вводимого на максимум?
Спасибо!
19K
19 сентября 2006 года
ivan-hohol
11 / / 24.08.2006
Я просмотрел твой скрипт и нашёл две ошибки:
1) ты проверяешь неизвестную переменную ret (if(ret==0){document.getElementById(box).checked='' ;
}else{document.getElementById(box).checked='1';
})
2) ты передаёшь в качестве аргумента box 4, но на странице четвёртого элемента нет.
3.9K
20 сентября 2006 года
KuRST
29 / / 31.08.2004
Извини, не до конца написал листинг.
1)исправил.
2)на странице имеется элемент
<input type='checkbox' id='4'>
итого: всё равно не работает...
19K
20 сентября 2006 года
ivan-hohol
11 / / 24.08.2006
Это происходит из-за функции setTimeout. Ей в качестве параметров передаётся текстовое выражение, которое нужно выполнить, и целое число( время через которое нужно выполнить выражение).
Т. е выражение My('4_input','4_output','100', '4','2') тебе нужно взять в кавычки.
3.9K
21 сентября 2006 года
KuRST
29 / / 31.08.2004
Спасибо за совет. Попробую.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог