可以't访问中继器中的“自动完成”文本框
Can't access textbox for Autocomplete in repeater
我正试图使用一个小javascript脚本访问中继器中的文本框。当用户从列表中选择一个选项时,ajax自动完成会调用它。
它不起作用,因为javascript无法访问文本框(ID=ContactID)。原因是它在中继器里。那么,我该如何修改脚本以访问中继器中的特定文本框呢?
<script type="text/javascript" >
function OnContactSelected(source, eventArgs) {
$get('<%# ContactID.ClientID %>').value = eventArgs.get_value();
}
</script>
中继器代码:
<asp:repeater ID="itemsRepeater"
OnItemDataBound="itemsRepeater_ItemDataBound"
runat="Server">
<itemtemplate>
<tr>
<td>
<asp:RadioButtonList runat="server" DataSource="<%# ((Outlet)Container.DataItem).OutletInformations %>" DataValueField="DateOfDelivery" DataTextField="DateOfDelivery" />
</td>
<td>
<asp:TextBox ID="ContactID" runat="server"/>
</td>
</tr>
</itemtemplate>
</asp:repeater>
您的问题似乎是您实际上没有针对任何"特定"文本框。中继器的每一行都会有一个这样的文本框,由于数据绑定的性质,这些文本框总是只在运行时可用。
要解决此问题,您需要做两件事中的一件。更困难但更完整的答案是使用中继器的onItemDatabound事件,并从该事件的eventArgs中提取子控件。如果您想修改codebehind中的子控件,这将是您唯一的选择。
然而,因为您是从javascript中执行此操作的,并且(表面上)希望此自动完成函数在每个文本框上运行,所以只需为表行提供一个类,并将其内部的呈现输入标记作为目标:
.aspx:
<itemtemplate>
<tr>
<td>
<asp:RadioButtonList runat="server" DataSource="<%# ((Outlet)Container.DataItem).OutletInformations %>" DataValueField="DateOfDelivery" DataTextField="DateOfDelivery" />
</td>
<td class="autocomplete">
<asp:TextBox ID="ContactID" runat="server"/>
</td>
</tr>
</itemtemplate>
JS:
<script type="text/javascript" >
function OnContactSelected(source, eventArgs) {
var fields = document.querySelectorAll(".autocomplete input");
for(var i = 0; i < fields.length; i++){
fields[i].value = eventArgs.get_value();
}
}
</script>
相关文章:
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- 如何从自动完成文本框中单击名称
- 有人能发现我的错误吗(自动完成文本框)
- 使用自动完成文本框从mysql数据库获取表记录并显示在文本字段中
- 具有多个值的自动完成文本框,这些值由句号和Elements分隔
- 级联下拉菜单干扰自动完成文本框
- 将文件转换为数组并使用数据列表和选项标签为自动完成文本框添加数组元素
- “自动完成”文本框未前进到下一条记录
- 当我从下拉列表中选择公司名称时,UpdatePanel 自动发布返回=true 并且自动完成文本框不起作用
- 将公司名称绑定到更新面板中的下拉列表,自动完成文本框工作,但每次页面刷新时
- JQuery 自动完成如何在自动完成文本输入中写入标签
- 如何为 Google 放置 API 自动完成文本框设置默认值
- 谷歌自动完成文本框
- 自动完成文本视图谷歌放置 API 描述 -> place_id
- 只通过javascript自动完成文本框中的第一个字母
- 如何根据另一个文本框的值使用jQuery自动完成文本框
- 带有文本值和id的自动完成文本框
- 用于搜索UL列表的搜索框或自动完成文本框
- 谷歌地图API:在提交之前,如何确保谷歌地图自动完成文本是实际地址
- 根据自动完成文本框中插入的值动态添加dropdpwn