[SIZE=2][COLOR=#0000ff][FONT=Courier New]var[/FONT][/COLOR][/SIZE][FONT=Courier New][SIZE=2] listBox1 = document.getElementById([/SIZE][SIZE=2][COLOR=#800000]'ListBox1'[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New]);[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]var[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] item = listBox1.childNodes(1);[/FONT]
[FONT=Courier New]alert(item.value);[/FONT]
[/SIZE]
Как Items из ListBox передать в JavaScript функцию?
пытался сделать так:
function choice()
{
var list= document.form1.elements['ListBox1'];
...
// при попытке ообратится к list.Items[0].Value - ошибка
}
...
<asp:ListBox ID="ListBox1" runat="server">
<asp:ListItem>1st</asp:ListItem>
<asp:ListItem Value="2nd"></asp:ListItem>
</asp:ListBox>
Вот пример, как надо обращаться к элементам списка (javascript):
Код:
Нумерация элементов списка с единицы.
спасибо, только квадратные скобки и нумерация с нуля...
Цитата: 3A3-968M
Конечно, ведь JavaScript не может обращаться к объектам ASP.NET через управляемый код. ASP.NET контрол ListBox - это есть тэг SELECT в HTML.
почему тогда работает:
document.form1.elements['TextBox1'].value="qwerwt";
и не работает:
document.form1.elements['ListBox1'].Items[1].value="qwerwt";
?
и в чем разница между elements[] и getElementById()?
Что за Items?? childNodes надо.
Если в ListBox1 4 элемента, то выглядит это так:
childNodes[0]=undefined
childNodes[1]=1st
childNodes[2]=undefined
childNodes[3]=2nd
childNodes[4]=undefined
childNodes[5]=3d
childNodes[6]=undefined
childNodes[7]=4th
Щас сделал, чтобы брало через один - все работает, но все же в чем дело?
Код:
[FONT=Courier New]<HTML>[/FONT]
[FONT=Courier New]<HEAD>[/FONT]
[FONT=Courier New]</HEAD>[/FONT]
[FONT=Courier New]<BODY>[/FONT]
[FONT=Courier New]<SELECT ID = "ctrlSelect">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE1" TEXT = "TEXT1">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE2" TEXT = "TEXT2">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE3" TEXT = "TEXT3">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE3" TEXT = "TEXT4">[/FONT]
[FONT=Courier New]</SELECT>[/FONT]
[FONT=Courier New]<SCRIPT LANGUAGE = "javascript">[/FONT]
[FONT=Courier New] var _ctrlSelect = document.getElementById('ctrlSelect');[/FONT]
[FONT=Courier New] alert(_ctrlSelect.childNodes.length);[/FONT]
[FONT=Courier New]</SCRIPT>[/FONT]
[FONT=Courier New]</BODY>[/FONT]
[FONT=Courier New]</HTML>[/FONT]
[FONT=Courier New]<HEAD>[/FONT]
[FONT=Courier New]</HEAD>[/FONT]
[FONT=Courier New]<BODY>[/FONT]
[FONT=Courier New]<SELECT ID = "ctrlSelect">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE1" TEXT = "TEXT1">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE2" TEXT = "TEXT2">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE3" TEXT = "TEXT3">[/FONT]
[FONT=Courier New]<OPTION VALUE = "VALUE3" TEXT = "TEXT4">[/FONT]
[FONT=Courier New]</SELECT>[/FONT]
[FONT=Courier New]<SCRIPT LANGUAGE = "javascript">[/FONT]
[FONT=Courier New] var _ctrlSelect = document.getElementById('ctrlSelect');[/FONT]
[FONT=Courier New] alert(_ctrlSelect.childNodes.length);[/FONT]
[FONT=Courier New]</SCRIPT>[/FONT]
[FONT=Courier New]</BODY>[/FONT]
[FONT=Courier New]</HTML>[/FONT]
Здесь длина дочерних узлов равна пяти (первый, это сам тэг SELECT). Приведи ASP.NET код твоего ListBox'а. И тебе обязательно это делать на клиенте, серверный код не устраивает???
Было <asp:ListItem>1st</asp:ListItem> вместо <asp:ListItem value="1st"></asp:ListItem>
<asp:ListBox ID="ListBox1" runat="server">
<asp:ListItem>1st</asp:ListItem>
<asp:ListItem Value="2nd"></asp:ListItem>
<asp:ListItem Value="3d"></asp:ListItem>
<asp:ListItem Value="4th"></asp:ListItem>
</asp:ListBox>
ЗЫ к сожалению серверный код не устраивает - во многих строках юзер выбирает значение из списка(видов списков мало, есть очень большие списки, все должно работать на диалапе) если для каждой строки список будет заново грузится с сервера... будет не хорошо. А так список грузится один раз.
Код:
[FONT=Courier New]<HTML>
<HEAD>
</HEAD>
<BODY>
<SELECT id = "select1">
<OPTION value = "option1">text1
<OPTION value = "option2">text2
<OPTION value = "option3">text3
<OPTION value = "option4">text4
</SELECT>
<SCRIPT LANGUAGE = "javascript">
var selectControl = document.all['select1'];
alert(selectControl.options.length);
</SCRIPT>
</BODY>
</HTML>[/FONT]
<HEAD>
</HEAD>
<BODY>
<SELECT id = "select1">
<OPTION value = "option1">text1
<OPTION value = "option2">text2
<OPTION value = "option3">text3
<OPTION value = "option4">text4
</SELECT>
<SCRIPT LANGUAGE = "javascript">
var selectControl = document.all['select1'];
alert(selectControl.options.length);
</SCRIPT>
</BODY>
</HTML>[/FONT]
Тэги OPTION ни чем не закрываются это раз, далее обращение к элементам списка идёт через options а не через childNodes (хотя можно и через childNodes, различие только в семантике).