Javascript 实时更改中继器内的标签
我试图根据中继器内的文本框的值实时更改中继器内的标签Javascript 实时更改中继器内的标签,javascript,c#,asp.net,Javascript,C#,Asp.net,我试图根据中继器内的文本框的值实时更改中继器内的标签 <script> //language="javascript" is deprecated //type="text/javascript" is default and cam be omitted var txts = document.querySelectorAll('input[id$=txtInput]'); for(var i = 0, txt; txt = txts[i]; ++i){ txt.addEv
<script>
//language="javascript" is deprecated
//type="text/javascript" is default and cam be omitted
var txts = document.querySelectorAll('input[id$=txtInput]');
for(var i = 0, txt; txt = txts[i]; ++i){
txt.addEventListener('change', function(){
document.getElementById(this.id.replace('txtInput', 'labelToUpdate')).innerHTML = this.value;
});
}
</script>
我曾尝试使用JS解决这个问题,但无法访问转发器内的标签或文本框
<script>
//language="javascript" is deprecated
//type="text/javascript" is default and cam be omitted
var txts = document.querySelectorAll('input[id$=txtInput]');
for(var i = 0, txt; txt = txts[i]; ++i){
txt.addEventListener('change', function(){
document.getElementById(this.id.replace('txtInput', 'labelToUpdate')).innerHTML = this.value;
});
}
</script>
如果标签或文本框在转发器外,我可以访问它
JS:
document.getElementById(“”).innerHTML=document.getElementById(“”).value;
ASPX:
任何帮助都会得到感激
谢谢中继器控件位于ItemTemplate中,因此您无法直接引用它们。您需要通过索引访问它们 用你的方法你可以做到这一点
document.getElementById('<%= Repeater1.Items[i].FindControl("labelTotalCsrPercentage").ClientID %>').innerHTML =
document.getElementById('<%= Repeater1.Items[i].FindControl("txtInput").ClientID %>').value;
为此,您需要使用具有唯一ID的元素包装中继器
<span id="MyRepeater1">
<asp:Repeater ID="Repeater1" runat="server">
</asp:Repeater>
</span>
asp:repeater
将其id
(及其父id
s)添加到项目级控制id
s之前。所以,用这个想法。将脚本放在中继器之后
<script>
//language="javascript" is deprecated
//type="text/javascript" is default and cam be omitted
var txts = document.querySelectorAll('input[id$=txtInput]');
for(var i = 0, txt; txt = txts[i]; ++i){
txt.addEventListener('change', function(){
document.getElementById(this.id.replace('txtInput', 'labelToUpdate')).innerHTML = this.value;
});
}
</script>
//language=“javascript”已弃用
//type=“text/javascript”是默认值,不能省略
var txts=document.querySelectorAll('input[id$=txtInput]');
对于(变量i=0,txt;txt=txts[i];++i){
txt.addEventListener('change',function()){
document.getElementById(this.id.replace('txtInput','labelToUpdate')).innerHTML=this.value;
});
}
如果jQuery更简单,也可以使用它
<script>
//language="javascript" is deprecated
//type="text/javascript" is default and cam be omitted
var txts = document.querySelectorAll('input[id$=txtInput]');
for(var i = 0, txt; txt = txts[i]; ++i){
txt.addEventListener('change', function(){
document.getElementById(this.id.replace('txtInput', 'labelToUpdate')).innerHTML = this.value;
});
}
</script>