powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Почему value из текстового поля возвращает undefined?
25 сообщений из 28, страница 1 из 2
Почему value из текстового поля возвращает undefined?
    #38530818
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте! Странная вещь происходит...

В разделе <HEAD> есть скрипт:
Код: javascript
1.
2.
3.
4.
5.
6.
<script type="text/javascript">
$(function()
{
$("#txtDepart").autocomplete({ source: "ref_depart.php?enter="+encodeURIComponent(document.getElementById("txtEnter").Value), autoFocus: true, delay: 10 });
});
</script>



В нем используется значение из текстового поля "txtEnter": document.getElementById("txtEnter").Value .

При выполнении скрипта свойство Value имеет значение undefined, хотя в самом поле текст имеется. В чём может быть причина?

Вот фрагмент кода HTML с описанием поля:
Код: html
1.
<input type="text" id="txtEnter" name="txtEnter" maxlength="50" autofocus size="50">
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530821
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
value нужно строчными буквами написать, если не поможет - искать элементы с таким-же id="txtEnter", у которых нет value.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530823
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Написал маленькими буквами. Не помогло - результат тот же.
Полей с таким же именем на странице нет.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530824
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирнов, value со строчной буквы v пишется - javascript регистрозависимый язык
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530827
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

Пробовал - не помогает.

Ещё попробовал использовать конструкцию JQuery:
$("#txtEnter").val()
Тоже самое. Возвращает всегда значение, которое задано аттрибутом value в теге input (P.S. в теге input присвоил полю значение value по-умолчанию, вместо undefined стало отображать его), а из браузера текст, который я ввел в поле, игнорирует.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530828
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирновasws,

Написал маленькими буквами. Не помогло - результат тот же.
Полей с таким же именем на странице нет.значит надо искать кириллицу, случайно попавшую в код,
ну сами там посмотрите, вам виднее...
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530830
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

"значит надо искать кириллицу, случайно попавшую в код"

Тоже исключено. Я все проверил на много раз уже.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530832
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирнов,

Значит значение source не обновляется после изменения value.
Никаких чудес ведь не бывает.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530834
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Что такое "значение source"? Как его проверить?
Если вы имеете ввиду аттрибут source в методе autocomplete, то он здесь не причем. Здесь source - это входной аттрибут метода autocomplete. Если я вместо document.getElementById("txtEnter").Value напишу любую строку, то метод работает отлично. Это я проверил конечно же уже давно.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530835
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирнов,

Поставьте onchange="alert(this.value)" в ваш input - и посмотрите, меняется value или нет.
Вы скорее всего не в том месте ищите ошибку.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530836
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Да, в событии onchange this.value (а так же txtEnter.value, отображенный из события onchange другого поля) отображается корректно. Т.е. отображаются текущие значения, введенные пользователем.

А в моем скрипте $(function..., расположенном в разделе HEAD, value всегда отображается только то, которое было задано по-умолчанию в теге INPUT.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530838
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, что это глюк библиотек jquery.js или jquery-ui.js, хотя у меня стоят последние версии библиотек - сегодня скачал с сайтов разработчиков.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530839
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирнов... только то, которое было задано по-умолчанию в теге INPUT.
неправильная формулировка, правильная такая:
"только то, которое находится в теге INPUT в момент вызова функции."

Теперь понятнее?
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530840
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Нет, в том то и дело, что функция вызывается после каждого нажатия на кнопку клавиатуры. Естественно само поле уже содержит другой текст, отличный от того, который задан в теге INPUT.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530841
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирновasws,

Нет, в том то и дело, что функция вызывается после каждого нажатия на кнопку клавиатуры. Естественно само поле уже содержит другой текст, отличный от того, который задан в теге INPUT.не работаю с jquery, но по-моему это неправильно, думаю правильно примерно так :
вызывать функцию после отработки очередного запроса на сервер (если value менялось), а не после нажатия каждой клавиши.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530843
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и кстати, откуда уверенность, что value должно меняться в момент ввода символа?
другое дело - при потере фокуса, то-есть только в момент возникновения события change
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530844
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Библиотеку JQuery придумали для создания динамических страниц без запросов к серверу.

У меня в принципе родился в голове выход из ситуации:
1) при событии onclick в поле txtEnter сохранять значение txtEnter.value в глобальную переменную;
2) функция $(function()... при вызове из другого поля txtDepart будет читать значение поля txtEnter из глобальной переменной.

Потом проверю это, т.к. не знаю вообще как объявлять глобальные переменные, присваивать им значения и извлекать из них значения, т.к. синтаксис JavaScript начал изучать только сегодня) и не знаю пока как правильно это сделать.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530845
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирнов,

дело не в библиотеке jQuery (которую придумали совсем не для того, что вы пытаетесь на неё перевалить),
она думать за вас не будет.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530847
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Спасибо за помощь в любом случае.
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530925
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем не менее проблема не решена(

Вместо txtEnter.value использовал переменные.

В теге INPUT прописал событие oninput:
Код: html
1.
<input type="text" id="txtEnter" name="txtEnter" maxlength="50" autofocus value="ПО ТЭС" size="50" onchange="window.strEnter=this.value;">



В функции переменная window.strEnter почему то не видна( и выдает все тот же "undefined":
Код: javascript
1.
2.
3.
4.
5.
<script type="text/javascript">
$(function()
{
 $("#txtDepart").autocomplete({ source: "ref_depart.php?enter="+encodeURIComponent(window.strEnter), autoFocus: true, delay: 10 });
}); </script>
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530939
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирнов, при таком вызов функции autocomplete делается всего один раз после загрузки документа.

Зачем тебе нужно менять источник данных для autocomplete?
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530952
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

Приведенная выше функция $(function()... вызывается при каждом нажатии на кнопку. Это обеспечивает библиотека JQuery-UI.

Зачем это нужно:

Два поля input на странице "txtEnter" (организация) и "txtDepart" (подразделения).
В первом поле выбираем организацию.
Во втором поле выбираем подразделения этой организации. В момент нажатии в поле txtDepart на кнопку клавиатуры происходит событие, которое вызывает функцию $function()... приведенную выше. Эта функция обеспечивает автозаполнение поля txtDepart, выдавая список возможных вариантов, которые читает из базы данных, путем обращения к файлу ref_depart.php, передавая в параметре GET как раз содержимое поля txtEnter (название организации) - вернее должно передавать, но никак не могу внутри функции получить значение поля txtEnter, т.к.:
1) значение поля document.getElementById("txtEnter").Value внутри функции почему-то всегда равно начальному значению value, заданному в теге input;
2) при попытке использовать глобальную переменную window.strEnter внутри функции эта переменная не видна(

Может быть ещё есть какие-то способы передачи значения поля txtEnter внутрь функции?
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530956
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Смирнов,

вы хотите по энтер выдать результат поиска вместо обновления автокомплита?
добавьте в инпут поисковой строки: onkeypress="fKeyEnter(event)"
Код: javascript
1.
2.
3.
4.
5.
6.
7.
// проверка нажатия ENTER
function fKeyEnter(e){
var keynum;
if(window.event){keynum=e.keyCode;}else if(e.which){keynum=e.which;}
if(keynum==13){
	... // отправка запроса на поиск
}}	


я так делал тут _http://bartersib.ru/
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530966
Фотография Алексей Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILLHEAD,

Нет, по Enter не хотел делать.... попытаюсь объяснить...

У меня условие для выдачи списка автозаполнения поля txtDepart зависит от 2-х полей txtEnter (название организации, введенное ранее) и txtDepart (начальные буквы, которые пользователь вводит в поле txtDepart). Другими словами в запросе к базе данных MySQL учавствуют два критерия:

Код: sql
1.
2.
$strSQL = "SELECT `department`.`Name` FROM `department` INNER JOIN `enters` ON `department`.`EnterID`=`enters`.`ID`
WHERE (`enters`.`Name`='".$strEnter."') AND (`department`.`Name` Like '%".$strDepart."%')";



Этот запрос выполняет файл ref_depart.php и возвращает уже полученные данные в функцию autocomplete, которая и вызывает этот файл на выполнение. Параметры $strEnter и $strDepart передаются в ref_depart.php через GET.

Вот полный листинг HTML:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">

<script src="../_include/jquery.js"></script>
<script src="../_include/jquery-ui.js"></script>
<link rel="stylesheet" href="../_include/jquery-ui.css">

<script type="text/javascript">
$(function()
	{
	$("#txtEnter").autocomplete({ source: "ref_enters.php", autoFocus: true, delay: 10 });
	$("#txtDepart").autocomplete({ source: "ref_depart.php?enter="+encodeURIComponent(document.getElementById("txtEnter").Value),
autoFocus: true, delay: 10 });
	});
</script>

</head>

<body>

<FORM action="save.php" method="POST" name="frmMain">
<br>Организация:
<input type="text" id="txtEnter" name="txtEnter" maxlength="50" autofocus value="" size="50">
<br>подразделение:
<input type="text" id="txtDepart" name="txtDepart" maxlength="50" autofocus value="" size="50"">
</FORM>

</body>
</html>



Вот полный листинг reg_depart.php:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<?php

// подключение к базе данных
//mysql_connect_database();

// определение строки подразделения
$strDepart = iconv("utf-8","cp1251",$_REQUEST['term']);

// чтение организации
$strEnter = iconv("utf-8","cp1251",$_REQUEST['enter']);

// формирование строки запроса
$strSQL = "SELECT `department`.`Name` FROM `department` INNER JOIN `enters` ON `department`.`EnterID`=`enters`.`ID`
WHERE (`enters`.`Short`='".$strEnter."') AND (`department`.`Name` Like '%".$strDepart."%') ORDER BY `department`.`Name`;";

// обращение к базе данных
$result = mysql_query($strSQL);

// создание массива результата
$varNames = array();

// чтение данных
while ($row = mysql_fetch_array($result)) $varNames[] = iconv("cp1251","utf-8",$row['Name']);

// вывод данных
echo json_encode($varNames);

?>
...
Рейтинг: 0 / 0
Почему value из текстового поля возвращает undefined?
    #38530972
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей СмирновПриведенная выше функция $(function()... вызывается при каждом нажатии на кнопку.
Ты заблуждаешься. Эта функция вызывается только один раз после загрузки документа. В этой функции ты настраиваешь параметры autocomplete не более того.

Чтобы решить твою задачу с зависимыми autocomplete следует поступить примерно так:
Код: javascript
1.
2.
3.
4.
5.
$(function() {
    $("#txtEnter").on("change", function() {
        $("#txtDepart" ).autocomplete("option", "source", "ref_depart.php?enter="+encodeURIComponent($(this).val()) );
    });
});
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Почему value из текстового поля возвращает undefined?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]