Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 实时更改中继器内的标签_Javascript_C#_Asp.net - Fatal编程技术网

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>