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) не срабатывает, даже когда первый выбран. Что я делаю не так? |
Цитата:
Т.ч. ты либо раздел правильно выбирай... Либо показывай хтмл. |
Извиняйте, я сам шарпей, а c ASP .NET сегодня первый день ковыряюсь.
Я вас правильно понял, что мне RadioButton'ы нужно добавлять в виде <input type="radio" ... > вместо <asp:RadioButton ... >? Если да, то будет ли с ними работать мой серверный код C# ? |
Цитата:
Как они интерпретируются в конечный хтмл знают только ASP.NETчики... Как ты будешь создавать страницу это твое дело. :) Но нужно точно знать с каким именно хтмл тебе придется работать. ;) Посмотри на готовую страницу (тот же исходный код) в браузере и многое может для тебе прояснится... |
Спасибо! Ваш совет очень помог. Я посмотрел Код Страницы в браузере и увидел, что мои 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 |
Цитата:
Просто такая вот интерпретация. Это ты еще с ZEN не работал... :lol: Там и не так еще интерпретируют! |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 11:49. |