powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / RadioButtonList enabled/disabled с помощью JavaScript. Как?
8 сообщений из 8, страница 1 из 1
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34143716
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На странице чекбокс и этот самый RadioButtonList.
При смене состояния чекбокса надо менять состояние RadioButtonList.

В функции пытаюсь делать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function checkedChanged()
{

var firstCheck = document.getElementById('CheckBox1');
var radio2 = document.getElementById('RadioButtonList2');

if (firstCheck.obj.checked == true)
{
radio2.disabled = false;
}
else
{
radio2.disabled = true;
}
}
не работает. Как быть?

-------------------------------------------------------------------------
Скоро может начаться такая борьба за мир, что камня на камне не останется.
...
Рейтинг: 0 / 0
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34143778
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты ищешь элементы по ID. А на клиенте у них ID ведь может отличаться от серверного, так что если не уверен, то лучше используй getElementById('<%=CheckBox1.ClientID');.

Да, и код можно проще написать:

Код: plaintext
radio2.disabled=!firstCheck.checked

Кстати, а вот в строке firstCheck.obj.checked шо за obj?
...
Рейтинг: 0 / 0
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34143812
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkyLightТы ищешь элементы по ID. А на клиенте у них ID ведь может отличаться от серверного, так что если не уверен, то лучше используй getElementById('<%=CheckBox1.ClientID');.

Да, и код можно проще написать:

Код: plaintext
radio2.disabled=!firstCheck.checked

Кстати, а вот в строке firstCheck.obj.checked шо за obj?

Код: plaintext
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.
function getObj(name)
{
/* DHTML Micro API
* Source: http://www.quirksmode.org/js/dhtmloptions.html
*/
if (document.getElementById) // test if browser supports document.getElementById
{
this.obj = document.getElementById(name);
this.style = document.getElementById(name).style;
}
else if (document.all) // test if browser supports document.all
{
this.obj = document.all[name];
this.style = document.all[name].style;
}
else if (document.layers) // test if browser supports document.layers
{
this.obj = document.layers[name];
this.style = document.layers[name].style;
}
}

function checkedChanged()
{

var firstCheck = new getObj('CheckBox1');
var txt1 = new getObj('TextBox1');
var txt2 = new getObj('TextBox2');
var radio2 = document.getElementById('<%=RadioButtonList2.ClientID%>');

if (firstCheck.obj.checked == true)
{
txt1.obj.disabled = false;
txt2.obj.disabled = false;
radio2.disabled = false;
}
else
{
txt1.obj.disabled = true;
txt2.obj.disabled = true;
radio2.disabled = true;
}
}

Так тоже не работает. а вот текстбоксы прекрасно включаются/выключаются
...
Рейтинг: 0 / 0
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34143911
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вот так работает, вот только что проверил:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<script>
    function f(){
        document.getElementById('<%= RadioButtonList1.ClientID%>').disabled=document.getElementById('<%= CheckBox1.ClientID%>').checked;
    }
</script>

<form id="form1" runat="server">
    <div>
        <asp:CheckBox ID="CheckBox1" runat="server" Text="Выключено" />
        <asp:RadioButtonList ID="RadioButtonList1" runat="server">
            <asp:ListItem Value="0" Text="item 0"></asp:ListItem>
            <asp:ListItem Value="1" Text="item 1"></asp:ListItem>
        </asp:RadioButtonList>
    </div>
</form>

Код: plaintext
1.
2.
3.
protected void Page_Load(object sender, EventArgs e)
{
    CheckBox1.Attributes.Add("onclick", "f()");
}
...
Рейтинг: 0 / 0
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34143964
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поспешил. Такое отлично работает в IE, но не работает в Опере и Лисе. RadioButtonList рендерится в таблицу и что-то мне подсказывает, что либо disabled для таблицы понимает только IE, либо я чего-то в этой жизни не понимаю.

Как вариант можно попробовать задизейблить не таблицу, в которой радиобатоны лежат, а их самих, перебрав их не по ID, а по name, оно ж у них всех одинаковое.
...
Рейтинг: 0 / 0
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34144619
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkyLightПоспешил. Такое отлично работает в IE, но не работает в Опере и Лисе. RadioButtonList рендерится в таблицу и что-то мне подсказывает, что либо disabled для таблицы понимает только IE, либо я чего-то в этой жизни не понимаю.


А у меня и такое не работает. Ни в ИЕ ни в Фирефоксе.
Я плакаль :(

SkyLight
Как вариант можно попробовать задизейблить не таблицу, в которой радиобатоны лежат, а их самих, перебрав их не по ID, а по name, оно ж у них всех одинаковое.

Если можете - дайте примерчик, пожалуйста.
Чёт у меня никак не выходит блин "каменный цветок". :(
...
Рейтинг: 0 / 0
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34144692
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот попробуй что-то типа этого (если я нигде не ошибся):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<script>
    function f(){
        var items = document.getElementsByName('<%= RadioButtonList1.ClientID%>');
        var chk=document.getElementById('<%= CheckBox1.ClientID%>');
        if (!items || !chk)
            alert('Error');
        for (var i= 0 ; i<items.length; i++)
            items[i].disabled=chk.checked;
    }
</script>
...
Рейтинг: 0 / 0
RadioButtonList enabled/disabled с помощью JavaScript. Как?
    #34144748
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkyLightВот попробуй что-то типа этого (если я нигде не ошибся):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<script>
    function f(){
        var items = document.getElementsByName('<%= RadioButtonList1.ClientID%>');
        var chk=document.getElementById('<%= CheckBox1.ClientID%>');
        if (!items || !chk)
            alert('Error');
        for (var i= 0 ; i<items.length; i++)
            items[i].disabled=chk.checked;
    }
</script>


Спасибо.
Это работает в Лисе но не в ИЕ ... дурдом.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / RadioButtonList enabled/disabled с помощью JavaScript. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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