Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / RadioButtonList enabled/disabled с помощью JavaScript. Как? / 8 сообщений из 8, страница 1 из 1
21.11.2006, 14:06
    #34143716
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RadioButtonList enabled/disabled с помощью JavaScript. Как?
На странице чекбокс и этот самый 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
21.11.2006, 14:23
    #34143778
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RadioButtonList enabled/disabled с помощью JavaScript. Как?
Ты ищешь элементы по ID. А на клиенте у них ID ведь может отличаться от серверного, так что если не уверен, то лучше используй getElementById('<%=CheckBox1.ClientID');.

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

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

Кстати, а вот в строке firstCheck.obj.checked шо за obj?
...
Рейтинг: 0 / 0
21.11.2006, 14:35
    #34143812
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RadioButtonList enabled/disabled с помощью JavaScript. Как?
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
21.11.2006, 14:59
    #34143911
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RadioButtonList enabled/disabled с помощью JavaScript. Как?
У меня вот так работает, вот только что проверил:

Код: 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
21.11.2006, 15:07
    #34143964
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RadioButtonList enabled/disabled с помощью JavaScript. Как?
Поспешил. Такое отлично работает в IE, но не работает в Опере и Лисе. RadioButtonList рендерится в таблицу и что-то мне подсказывает, что либо disabled для таблицы понимает только IE, либо я чего-то в этой жизни не понимаю.

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


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

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

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

Код: 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
21.11.2006, 18:01
    #34144748
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RadioButtonList enabled/disabled с помощью JavaScript. Как?
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
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / RadioButtonList enabled/disabled с помощью JavaScript. Как? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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