powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / RadioButtonList на стороне клиента - checked, value и text
23 сообщений из 23, страница 1 из 1
RadioButtonList на стороне клиента - checked, value и text
    #38037548
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В ASP web-странице имеется RadioButtonList. При клике я вызываю функцию JavaScript в которой получаю переменную:
var rbtLeft = document.getElementById("ctl00_ContentPlaceHolder1_rbtLeft");

Вопрос 1: Как теперь через эту переменную получить выбранные value и text?
Вопрос 2: Как в цикле пройти по всем элементам объекта и проверить в каждом из них:
checked, value и text?

Спасибо!
Евгений Боуден
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037582
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую размещать тут html, таким образом например, специалистам PHP, будет легче Вашу проблему понять и помочь

По сабжу http://js-help.net/text/objeknaya_model_documenta/derevo_documenta/dr_svdostupa.php
(хотя я бы лично пользовался тут jQuery (если в Вашем проекте он используется) просто потому что мне так нравится)
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037692
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПаганельРекомендую размещать тут html, таким образом например, специалистам PHP, будет легче Вашу проблему понять и помочь

По сабжу http://js-help.net/text/objeknaya_model_documenta/derevo_documenta/dr_svdostupa.php
(хотя я бы лично пользовался тут jQuery (если в Вашем проекте он используется) просто потому что мне так нравится)

На первое Ваше предложение даю HTML, хотя уверен, что это вряд ли поможет:
Код: html
1.
2.
3.
4.
5.
6.
7.
            <td align="left">
                <asp:RadioButtonList ID="rbtLeft" runat="server" AutoPostBack="True" 
                    DataValueField="HRE_ID" 
                    onselectedindexchanged="rbtLeft_SelectedIndexChanged" Font-Bold="True" 
                    Font-Size="XX-Large">
                </asp:RadioButtonList>
            </td>



На второе - спасибо, но это мне не помогло. получить getElenentByID не проблема. Я и получил, как писал выше:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
    function fRbtListOnClick(obj) {
        debugger;
        var rbtLeft = document.getElementById("ctl00_ContentPlaceHolder1_rbtLeft");
        var rbtRight= document.getElementById("ctl00_ContentPlaceHolder1_rbtRight");
        /* Здесь нужно получить значение и текст 
        этих двух выбранных элементов RadioButtonList и сравнить их
        Может как-то превратить полученную переменную в <SELECT> ???
        */
    }
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037703
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeдаю HTMLэто не HTML
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037706
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeэто мне не помоглокак пробовали использовать? какой был исходный код? какой текст ошибки?
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037709
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeAutoPostBack="True"это зачем?
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037820
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганельevgenybeдаю HTMLэто не HTML
Это таки HTML только в дизайн-Time
А вот так это выглядит в RunTime:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
                <table id="ctl00_ContentPlaceHolder1_rbtLeft" onclick="fRbtListOnClick(this)" border="0" style="font-size:XX-Large;font-weight:bold;">
	<tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_0" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="71099" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_0">чинить</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_1" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="62171" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_1">видеть</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_2" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="84901" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_2">распределять</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_3" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="81698" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_3">проверять</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_4" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="78756" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_4">гасить</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_5" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="81076" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_5">ссориться</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_6" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="85282" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_6">заведовать</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_7" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="81895" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_7">прекращать</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_8" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="82404" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_8">выглядеть</label></td>
	</tr><tr>
		<td><input id="ctl00_ContentPlaceHolder1_rbtLeft_9" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="43807" /><label for="ctl00_ContentPlaceHolder1_rbtLeft_9">отвечать</label></td>
	</tr>
</table>




А AutoPostBack="true" - это аттрибут, указывающий, что после клика форму следует отослать на сервер немедленно. Но в данном случае, он срабатывает после клиентской части и к ней отношения не имеет.
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037884
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeЭто таки HTML только в дизайн-Time
ХТМЛ он и в Африке ХТМЛ... Так вот "то" таки не ХТМЛ...
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037889
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeА вот так это выглядит в RunTimeвидите, у них name одинаковый? вот по нему бы и выбрать
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38037925
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeВопрос 1: Как теперь через эту переменную получить выбранные value и text?
Вопрос 2: Как в цикле пройти по всем элементам объекта и проверить в каждом из них:
checked, value и text?
Кину пока такой вариант...

Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function fRbtListOnClick(Obj) {
	$(Obj).find(':checked').each(function () {
		alert(this.value);
		alert($(this.parentNode).find('label').text());
	});
};
</script>
</head>
<body>
<table id="ctl00_ContentPlaceHolder1_rbtLeft" onclick="fRbtListOnClick(this)" border="0" style="font-size:XX-Large;font-weight:bold;">
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_0" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="71099" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_0">чинить</label>
		</td>
	</tr>
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_1" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="62171" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_1">видеть</label>
		</td>
	</tr>
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_2" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="84901" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_2">распределять</label>
		</td>
	</tr>
</table>
<button>Info</button>
</body>
</html>
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038314
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa, спасибо! Проблема в том, что это не PHP. Нужен JavaScript.
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038320
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Код: html
1.
<script type="text/javascript">

evgenybeНужен JavaScript.
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038332
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПаганельevgenybeА вот так это выглядит в RunTimeвидите, у них name одинаковый? вот по нему бы и выбрать

Спасибо. Вот что у меня получилось:
Код: javascript
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.
    function fRbtListOnClick(obj) {
 
        var rbtLeft = document.getElementById("ctl00_ContentPlaceHolder1_rbtLeft");
        var rbtRight = document.getElementById("ctl00_ContentPlaceHolder1_rbtRight");
        var rbtL;
        var rbtR;
        //event.srcElement.style.display = "none";
        // event.srcElement.style.color = "red"
        for (i = 0; i < 10; i++) {
            rbtL = "ctl00_ContentPlaceHolder1_rbtLeft_" + i;
            rbtLeft = document.getElementById(rbtL);
            if (rbtLeft.checked) {
                for (j = 0; j < 10; j++) {
                    rbtR = "ctl00_ContentPlaceHolder1_rbtRight_" + j;
                    rbtRight = document.getElementById(rbtR);
                    if (rbtRight.checked) {
                        if (rbtRight.value == rbtLeft.value) {
                            rbtRight.style.display = "none";
                            rbtLeft.style.display = "none";
                        }
                    }
                }
            }
        }
    }



Это работает. Осталась еще одна проблема - добраться до соответствующего Label, который внутри <inpute type="radio">, и сделать и его либо невидимым дибо изменить цвет. А как, если у него есть только for=" и т.д."?
Если не трудно - подскажите.
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038387
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybe ,
Смысл пользовать серверные контролы, чтобы потом их, через одно место, на клиенте ковырять?
Кста: однажды это может перестать работать...
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038449
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iConst evgenybe ,
Смысл пользовать серверные контролы, чтобы потом их, через одно место, на клиенте ковырять?
Кста: однажды это может перестать работать...
Серверные контролы - потому что для них есть работа на сервере (с базой данных в частности) ну и всякие другие штуки.
Организовал изначально все на сервере, но это во-первых тормозит пользователя, во-вторых, задалбывает мигание и перерисовка экрана. Потому решил часть работы делать полностью на клиенте, и только там, где требуется связь с БД, разные поиски в БД и т.п. ту часть на сервере.
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038506
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель, извините. Это я должен был послать другому пользователю. Ошибся, а функции удаления комента здесь нет.

А к Вам у меня был вопрос выше. Там где я выложил функцию, но надеюсь, что Вы мне подскажете как обратиться к label, который привязан к этому <input type="radio">
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038534
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeiConst...
Серверные контролы - потому что для них есть работа на сервере (с базой данных в частности) ну и всякие другие штуки.
Организовал изначально все на сервере, но это во-первых тормозит пользователя, во-вторых, задалбывает мигание и перерисовка экрана. Потому решил часть работы делать полностью на клиенте, и только там, где требуется связь с БД, разные поиски в БД и т.п. ту часть на сервере.Так часть или полностью? .
Направление верное. Как вариант - при работе с базой нет ничего зазорного, чтобы сгенерить разметку "ручками". Только это делать нужно правильно.
А потом всего-то останется:
HTML (что получилось)
Код: html
1.
2.
3.
<input id="r1" checked="checked" name="R1" type="radio" value="V1" /><label for="r1">Один</label>
<input id="r2"  name="R1" type="radio" value="V2" /><label for="r2">Два</label>
<input id="r3"  name="R1" type="radio" value="V3" /><label for="r3">Три</label>

javascript
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$('input:radio[name="R1"]').click(function()
{
    var id = this.id;

    $('label').each(function()
    {
        $(this).css('color', '');
        if ($(this).attr('for') == id) $(this).css('color', 'red');
    });
});

И все станет легко и просто... :)
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038546
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а давайте разместим input внутри label
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038576
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeПроблема в том, что это не PHP. Нужен JavaScript.
А где у меня там ПХП?
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038580
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgenybeСпасибо. Вот что у меня получилось:
Это называется говнокод...
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038595
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЭто называется говнокод... Вот так вот, фейсом да об тейбл...
...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38038611
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант на "чистом" JS...

Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function fRbtListOnClick() {
	var begid='ctl00_ContentPlaceHolder1_rbtLeft_';
	var i=0;
	var o=document.getElementById(begid+i)
	var ol;
	while (o) {
		if (o.checked) {
			ol=o.parentNode;
			ol=ol.getElementsByTagName('label')[0];
			alert(i+').'+o.value+'='+ol.innerHTML);
		};
		o=document.getElementById(begid+(++i));
	};
};
</script>
</head>
<body>
<table id="ctl00_ContentPlaceHolder1_rbtLeft" onclick="fRbtListOnClick()" border="0" style="font-size:XX-Large;font-weight:bold;">
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_0" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="71099" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_0">чинить</label>
		</td>
	</tr>
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_1" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="62171" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_1">видеть</label>
		</td>
	</tr>
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_2" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="84901" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_2">распределять</label>
		</td>
	</tr>
</table>
</body>
</html>

...
Рейтинг: 0 / 0
RadioButtonList на стороне клиента - checked, value и text
    #38041819
evgenybe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaВариант на "чистом" JS...

+
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function fRbtListOnClick() {
	var begid='ctl00_ContentPlaceHolder1_rbtLeft_';
	var i=0;
	var o=document.getElementById(begid+i)
	var ol;
	while (o) {
		if (o.checked) {
			ol=o.parentNode;
			ol=ol.getElementsByTagName('label')[0];
			alert(i+').'+o.value+'='+ol.innerHTML);
		};
		o=document.getElementById(begid+(++i));
	};
};
</script>
</head>
<body>
<table id="ctl00_ContentPlaceHolder1_rbtLeft" onclick="fRbtListOnClick()" border="0" style="font-size:XX-Large;font-weight:bold;">
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_0" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="71099" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_0">чинить</label>
		</td>
	</tr>
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_1" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="62171" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_1">видеть</label>
		</td>
	</tr>
	<tr>
		<td>
			<input id="ctl00_ContentPlaceHolder1_rbtLeft_2" type="radio" name="ctl00$ContentPlaceHolder1$rbtLeft" value="84901" />
			<label for="ctl00_ContentPlaceHolder1_rbtLeft_2">распределять</label>
		</td>
	</tr>
</table>
</body>
</html>



Спасибо! Это работает!!
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / RadioButtonList на стороне клиента - checked, value и text
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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