jquery 需要根据为不同塔设备选中的复选框,使用电子邮件ID填充文本字段

huwehgph  于 2023-01-25  发布在  jQuery
关注(0)|答案(1)|浏览(82)

我有4个塔,我需要为他们每个复选框。根据检查他们的'txtnotifto'文本框中的任何组合应该得到与每个塔选定的电子邮件ID的相应组填充。
请帮我找出这段代码中的错误。
选中此复选框后,出现以下错误:
0x800a138f-JavaScript运行时错误:无法获取未定义引用或空引用的属性'getElementsByTagName'*

function getChNotifValue() {
       
  var listItems = document.getElementById("txtTowerValue").getElementsByTagName("input");
  var cb1 = listItems[0];
  var cb2 = listItems[1];
  var cb3 = listItems[2];
  var cb4 = listItems[3];
  var cb5 = listItems[4];                        

  var emailaddress = document.getElementById('<%=txtNotifTo.ClientID%>');
  // var email = [];
                  
  var emailList = [];

  if (cb1.checked) {
    emailList.push("Admin@test.com");
  } else {
    emailList = removeEmail(emailList, "Admin@test.com");
  }
  if (cb2.checked) {
    emailList.push("Admin1@test.com");
  } else {
    emailList = removeEmail(emailList, "Admin1@test.com");
  }
  if (cb3.checked) {
    emailList.push("Admin2@test.com");
  } else {
    emailList = removeEmail(emailList, "Admin2@test.com");
  }
  if (cb4.checked) {
    emailList.push("Admin3@test.com");
  } else {
    emailList = removeEmail(emailList, "Admin3@test.com");
  }
  if (cb5.checked) {
    emailList.push("Admin4@test.com");
  } else {
    emailList = removeEmail(emailList, "Admin4@test.com");
  }

  emailaddress.value = emailList.join(', '); // Concatenate the email address to NotifTo variable
}
    • HTML代码:**
<tr>
  <td class="toconditions" style="border-color: lightblue">
    <asp:Label runat="server" ID="Label21" Font-Bold="true" Text="To" />
  </td>
  <td>
    <asp:TextBox runat="server" Width="700px" SkinID="EmailTextbox" ID="txtNotifTo" />
  </td>
</tr>

<asp:CheckBoxList ID="txtTowerValue" runat="server" SkinID="EmailTextbox" Font-Size="14px" Width="580px" Height="30px" BorderStyle="None" onClick="getChNotifValue()" >  
  <asp:ListItem Text="I1" Value="ch1" />
  <asp:ListItem Text="I2" Value="ch2" />
  <asp:ListItem Text="I3" Value="ch3" />
  <asp:ListItem Text="I4" Value="ch4" />
  <asp:ListItem Text="I5" Value="ch5" />                               
</asp:CheckBoxList>

我修改了Javascript函数中的代码,并添加了以下代码,因为txtNotifTo是一个ASP.NET服务器控件。
var listItems = document.getElementById('<%=txtNotifTo.ClientID%>').getElementsByTagName("input");
当我在此之后运行代码时,我得到了这个错误。
0x800a138f-JavaScript运行时错误:无法获取未定义或空引用的属性"checked"

cigdeys3

cigdeys31#

那么,使用jQuery选择器会更容易一些。
但是,您的代码将如下所示:

ckList = document.getElementById('<%= txtTowerValue.ClientID %>')
                ckBoxInList = ckList.getElementsByTagName("INPUT")

                if (ckBoxInList[0].checked) {
                    alert("Check box " + ckBoxInList[0].value + " is checked")
                }

                if (ckBoxInList[1].checked) {
                    alert("Check box " + ckBoxInList[1].value + " is checked")
                }

相关问题