我是一个有帮助的助手,可以为您进行文本翻译。
我有一个带有文本框的用户控件。单击文本框会打开一个弹出控件扩展,其中有几个复选框。当选中一个复选框时,它会将复选框值写入文本框。
这是我的JavaScript代码:
在上面的JS代码中,
当我在aspx页面中使用UserControl时,如果只有一个UserControl实例,则可以正常工作。但是,当我添加第二个UserControl实例时,文本仅写入到第二个文本框实例中。如果我选中/取消选中第一个实例中的复选框,仍会将文本添加到最后选中的复选框中。
有人能帮助我解决这个问题吗?如何获取每个复选框实例,以便我可以修改我的JavaScript? 编辑 添加完整代码
我有一个带有文本框的用户控件。单击文本框会打开一个弹出控件扩展,其中有几个复选框。当选中一个复选框时,它会将复选框值写入文本框。
这是我的JavaScript代码:
<script type = "text/javascript">
function CheckItem(checkBoxList) {
var options = checkBoxList.getElementsByTagName('input');
var arrayOfCheckBoxLabels = checkBoxList.getElementsByTagName("label");
var s = "";
for (i = 0; i < options.length; i++) {
var opt = options[i];
if (opt.checked) {
s = s + "," + arrayOfCheckBoxLabels[i].innerText;
}
}
if (s.length > 0) {
s = s.substring(2, s.length);
}
var TxtBox = document.getElementById("<%=txtCombo.ClientID%>");
TxtBox.value = s;
document.getElementById('<%=hidVal.ClientID %>').value = s;
}
</script>
在上面的JS代码中,
var TxtBox = document.getElementById("<%=txtCombo.ClientID%>");
获取文本框并向其写入内容。当我在aspx页面中使用UserControl时,如果只有一个UserControl实例,则可以正常工作。但是,当我添加第二个UserControl实例时,文本仅写入到第二个文本框实例中。如果我选中/取消选中第一个实例中的复选框,仍会将文本添加到最后选中的复选框中。
有人能帮助我解决这个问题吗?如何获取每个复选框实例,以便我可以修改我的JavaScript? 编辑 添加完整代码
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MultiSelectDropDown.ascx.cs" Inherits="MenuTest.MultiSelectDropDown" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<script type = "text/javascript">
function CheckItem(checkBoxList) {
var options = checkBoxList.getElementsByTagName('input');
var arrayOfCheckBoxLabels = checkBoxList.getElementsByTagName("label");
var s = "";
for (i = 0; i < options.length; i++) {
var opt = options[i];
if (opt.checked) {
s = s + "," + arrayOfCheckBoxLabels[i].innerText;
}
}
if (s.length > 0) {
s = s.substring(2, s.length); //sacar la primer 'coma'
}
var TxtBox = document.getElementById("<%=txtCombo.ClientID%>");
TxtBox.value = s;
document.getElementById('<%=hidVal.ClientID %>').value = s;
}
</script>
<asp:TextBox ID="txtCombo" runat="server" ReadOnly="true" Width="150" Font-Size="X-Small"></asp:TextBox>
<cc1:PopupControlExtender ID="PopupControlExtender111" runat="server"
TargetControlID="txtCombo" PopupControlID="Panel111" Position="Bottom"
>
</cc1:PopupControlExtender>
<input type="hidden" name="hidVal" id="hidVal" runat="server" />
<asp:Panel ID="Panel111" runat="server" ScrollBars="Vertical" Width="150" Height="110" BackColor="AliceBlue" BorderColor="Gray" BorderWidth="1">
<asp:CheckBoxList ID="chkList"
runat="server"
Height="80" onclick="CheckItem(this)">
<asp:ListItem Text="Contains" Value="Contains"/>
<asp:ListItem Text="Related" Value="Related"/>
<asp:ListItem Text="Exact" Value="Exact"/>
</asp:CheckBoxList>
</asp:Panel>