Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2015, 21:34
Новичок на форуме
Отправить личное сообщение для Kamill Посмотреть профиль Найти все сообщения от Kamill
 
Регистрация: 12.02.2015
Сообщений: 3

RadioButton в JavaScript
Здравствуйте!

Уже часа 3 бьюсь с глупой проблемой. Обычно ответы удается найти самостоятельно, но в этот раз - как горох об стену.

Имеется ASP .NET проект. Не MVC, не Ajax и т.д. Чистый ASP .NET.

На форме размерено несколько RadioButton, вот так:
<asp:RadioButton ID="rbtVar1" GroupName="Variants" name="r" Text="Дата рождения"
runat="server" Checked="True" /><br />
<asp:RadioButton ID="rbtVar2" GroupName="Variants" name="r" Text="Дата начала работ"
runat="server" /><br />
<asp:RadioButton ID="rbtVar3" GroupName="Variants" name="r" Text="Пятница до вечеринки"
runat="server" /><br />


А также текстовое поле. На нем висит CustomValidator, запускающий код на JavaScript. И, хоть ты лопни, не могу достучаться до RadioButton'ов в этом скрипте.

Делаю так:

<script type="text/javascript">
function DateValidate(source, argum) {
var inp = document.getElementsByName("r");

for (var i = 0; i < inp.length; i++) {
alert(" " + i + " " + inp[i].text + " " + inp[i].checked); // чтобы хотя бы увидеть, что происходит
}
...
argum.IsValid = false; // чтобы сервер не запускать пока
}
</script>

inp.length == 3 - все в порядке.
inp[i].text, inp[i].checked и прочие варианты печатает undefined. Проверка if (inp[0].checked) не срабатывает, даже когда первый выбран.

Что я делаю не так?

Последний раз редактировалось Kamill, 12.02.2015 в 21:40.
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2015, 21:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,201

Сообщение от Kamill
Имеется ASP .NET проект.
...
И, хоть ты лопни, не могу достучаться до RadioButton'ов в этом скрипт
JS не работает с элементами ASP.NET
Т.ч. ты либо раздел правильно выбирай... Либо показывай хтмл.
Ответить с цитированием
  #3 (permalink)  
Старый 12.02.2015, 21:51
Новичок на форуме
Отправить личное сообщение для Kamill Посмотреть профиль Найти все сообщения от Kamill
 
Регистрация: 12.02.2015
Сообщений: 3

Извиняйте, я сам шарпей, а c ASP .NET сегодня первый день ковыряюсь.
Я вас правильно понял, что мне RadioButton'ы нужно добавлять в виде <input type="radio" ... > вместо <asp:RadioButton ... >?
Если да, то будет ли с ними работать мой серверный код C# ?
Ответить с цитированием
  #4 (permalink)  
Старый 12.02.2015, 21:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,201

Сообщение от Kamill
Я вас правильно понял, что мне RadioButton'ы нужно добавлять в виде <input type="radio" ... > вместо <asp:RadioButton ... >?
Начнем с того, что раздел "Элементы интерфейса" как-то слабо связан с элементами ASP.NET...
Как они интерпретируются в конечный хтмл знают только ASP.NETчики...

Как ты будешь создавать страницу это твое дело. Но нужно точно знать с каким именно хтмл тебе придется работать. Посмотри на готовую страницу (тот же исходный код) в браузере и многое может для тебе прояснится...
Ответить с цитированием
  #5 (permalink)  
Старый 12.02.2015, 22:04
Новичок на форуме
Отправить личное сообщение для Kamill Посмотреть профиль Найти все сообщения от Kamill
 
Регистрация: 12.02.2015
Сообщений: 3

Спасибо! Ваш совет очень помог. Я посмотрел Код Страницы в браузере и увидел, что мои ASP .NET'овские RadioButton'ы разворачиваются вот в это:

<span name="r"><input id="rbtVar1" type="radio" name="Variants" value="rbtVar1" checked="checked" /><label for="rbtVar1">Дата рождения</label></span><br />
<span name="r"><input id="rbtVar2" type="radio" name="Variants" value="rbtVar2" /><label for="rbtVar2">Дата начала работ</label></span><br />
<span name="r"><input id="rbtVar3" type="radio" name="Variants" value="rbtVar3" /><label for="rbtVar3">Пятница до вечеринки</label></span><br />


Удивился, что name у них равно "Variants" (хотя в ASP не так было). Подставил в скрипт :
var inp = document.getElementsByName("Variants");
и свойство checked заработало. Я не знал, что тут будут такие подставы, как переименование полей ASP в конечном HTML
Ответить с цитированием
  #6 (permalink)  
Старый 12.02.2015, 22:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,201

Сообщение от Kamill
Я не знал, что тут будут такие подставы, как переименование полей ASP в конечном HTML
Это не подстава...
Просто такая вот интерпретация. Это ты еще с ZEN не работал... Там и не так еще интерпретируют!
Ответить с цитированием
  #7 (permalink)  
Старый 12.02.2015, 22:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,201

Сообщение от Kamill
Удивился, что name у них равно "Variants" (хотя в ASP не так было)
Как раз так и было!
Сообщение от Kamill
GroupName="Variants"
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обработать RadioButton с помощью JavaScript и AJAX MagicDawn AJAX и COMET 6 24.12.2013 20:42
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34