我想从' 0'更改标签值感谢'在下面的标签上,在复选框点击事件上。
<input type="hidden" name="label206451" value="0" />
<label for="txt206451" class="swatch_text" >Chestnut Leather</label>
<input type="checkbox" name="field206451" class="swatch_check" id="txt206451" value="SELECTED"/>
Javascript如下。
var cb = document.getElementById('field206451');
var label = document.getElementById('label206451');
cb.addEventListener('click',function(evt){
if(cb.checked){
label.value='Thanks';
}else{
label.value='0';
}
},false);
但这不起作用。有什么想法吗?
答案 0 :(得分:9)
非常简单
$('#label-ID').text("label value which you want to set");
答案 1 :(得分:5)
这适用于 Chrome
// get your input
var input = document.getElementById('txt206451');
// get it's (first) label
var label = input.labels[0];
// change it's content
label.textContent = 'thanks'
但看了之后,labels doesn't seem to be widely supported ..
您可以使用querySelector
// get txt206451's (first) label
var label = document.querySelector('label[for="txt206451"]');
// change it's content
label.textContent = 'thanks'
答案 2 :(得分:4)
您name
document.getElementById()
cb
应txt206451
name
( ID属性)不是var cb = document.getElementsByName('field206451')[0]; // First one
属性。
或
您可以document.getElementsByName()
var cb = document.getElementById('txt206451');
或强>
var cb = document.getElementById('txt206451');
var label = document.getElementsByName('label206451')[0]; // Get the first one of index
console.log(label);
cb.addEventListener('change', function (evt) { // use change here. not neccessarily
if (this.checked) {
label.value = 'Thanks'
} else {
label.value = '0'
}
}, false);
将值设置为隐藏使用document.getElementsByName()
,如下所示
{{1}}
答案 3 :(得分:1)
尝试
使用id
隐藏字段,并在javascript中使用checkbox
的ID。
并更改ClientIDMode="static"
<input type="hidden" ClientIDMode="static" id="label1" name="label206451" value="0" />
<script type="text/javascript">
var cb = document.getElementById('txt206451');
var label = document.getElementById('label1');
cb.addEventListener('click',function(evt){
if(cb.checked){
label.value='Thanks'
}else{
label.value='0'
}
},false);
</script>
答案 4 :(得分:1)
基于您的代码,我创建了这个Fiddle
你需要使用
var cb = document.getElementsByName('field206451')[0];
var label = document.getElementsByName('label206451')[0];
如果你想使用名称属性,那么你必须采用索引,因为它是一个项目列表,而不仅仅是一个项目。其他一切都很好。
答案 5 :(得分:0)
希望这对其他人有帮助: 使用innerHTML来使用标签对象。
document.getElementById('lableObject').innerHTML = res.FullName;