JavaScript中未定义转发器标签clientID错误
我有一个中继器控制:JavaScript中未定义转发器标签clientID错误,javascript,asp.net,user-controls,Javascript,Asp.net,User Controls,我有一个中继器控制: <asp:Repeater ID="repeater" runat="server" > <ItemTemplate> <tr> <td><asp:CheckBox class="checkbox" id="chkbox" runat="server" /></td> <td><asp:label ID="lbl
<asp:Repeater ID="repeater" runat="server" >
<ItemTemplate>
<tr>
<td><asp:CheckBox class="checkbox" id="chkbox" runat="server" /></td>
<td><asp:label ID="lblCode" runat="server" Text='<%#Eval("productCode")%>' /></td>
<td><asp:Label ID="lbldesc" runat="server" Text='<%# Eval("productDesc") %>' /></td>
<td><asp:TextBox ID="txtType" runat="server" Text='<%# Eval("productType") %>' /></td>
<td><asp:TextBox ID="txtqty" runat="server" Text='<%#eval("productQty") %>' size="10" />
<asp:label ID=lblqty runat="server" Text='<%#eval("productQty") %>' />
</td>
<td><asp:TextBox ID=txtPrice runat="server" Text='<%# eval("productprice") %>' class="text" Width="30px"/></td>
<td>
<asp:linkbutton ID="lnkEdit" runat="server"><img src="images/ico_edit_16.png" class="icon16 fl-space2" alt="" title="edit" /></asp:linkbutton>
<asp:linkbutton ID="LinkDelete" runat="server"><img src="images/ico_delete_16.png" class="icon16 fl-space2" alt="" title="delete" /></asp:linkbutton >
<asp:linkbutton ID="LinkSettings" runat="server"><img src="images/ico_settings_16.png" class="icon16 fl-space2" alt="" title="settings" /></asp:linkbutton >
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
如果我只是传入任何带有客户端ID的文本框,它就会找到它,并且我能够在警报中显示结果,但是如果传入任何标签,我会在错误控制台中收到错误消息
错误:未定义ctl00\u内容占位符1\u列表表1\u中继器\u ctl00\u lblqty
有人能告诉我如何解决这个问题吗?如果我删除.id部分或不查看更新,这没有什么区别,你还没有做到这一点,但这可能是另一个错误,你的第一个问题是EditLabel参数上的单引号。我已将代码更改为你的建议。还是没有快乐。我将其更改为txtbxqty.Attributes.Add(“onblur”,“javascript:Editlabel(“+txtbxqty.ClientID+”)”),这将显示文本框值,但一旦添加标签,它就停止工作
innerText
仅为IE。改用lbl.innerHTML
,或者查看alternative.Updated…..完成调试,推荐jQuery,处理这些愚蠢的错误。
//need single quotes on js function
txtbxqty.Attributes.Add("onblur", "javascript:Editlabel('" + lblqty.ClientID + "','" + txtbxqty.ClientID + "');")
//no need for id
cstext2.Append("var lbl = document.getElementById(qtylbl);")
cstext2.Append("var txt = document.getElementById(txtbox);")
cstext2.Append("alert(txt.value + ' ' + lbl.innerHtml);") //span don't have a value
Protected Sub repeater_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles repeater.ItemDataBound
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim lblcode As Label = e.Item.FindControl("lblcode")
Dim txtbxqty As TextBox = e.Item.FindControl("txtqty")
Dim lblqty As Label = e.Item.FindControl("lblqty")
Dim txtprice As TextBox = e.Item.FindControl("txtPrice")
txtbxqty.Attributes.Add("onblur", "javascript:Editlabel(" + lblqty.ClientID + "," + txtbxqty.ClientID + ");")
End If
End Sub
//need single quotes on js function
txtbxqty.Attributes.Add("onblur", "javascript:Editlabel('" + lblqty.ClientID + "','" + txtbxqty.ClientID + "');")
//no need for id
cstext2.Append("var lbl = document.getElementById(qtylbl);")
cstext2.Append("var txt = document.getElementById(txtbox);")
cstext2.Append("alert(txt.value + ' ' + lbl.innerHtml);") //span don't have a value