webentwicklung-frage-antwort-db.com.de

So ändern Sie den Labelwert mithilfe von Javascript

Ich möchte den Labelwert von '0' in 'Danke' unter dem Label ändern. Klicken Sie auf das Kontrollkästchen Ereignis.

<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"/>

Das Javascript ist wie folgt.

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);

Das funktioniert aber nicht. Irgendeine Idee?

5

Sie nehmen name in document.getElementById(). Ihre cb sollte txt206451 (ID-Attribut) nicht name-Attribut sein. 

Oder 

Sie können es durch document.getElementsByName()

var cb = document.getElementsByName('field206451')[0]; // First one

ODER

var cb = document.getElementById('txt206451');

Und zum Setzen von Werten in verborgene Zwecke verwenden Sie document.getElementsByName() wie folgt

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);

Demo Fiddle

3
Dhaval Marthak

sehr einfach 

$('#label-ID').text("label value which you want to set");
8
Aaska Patel

Dies funktioniert in 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 scheint jedoch nicht umfassend unterstützt zu werden ..


Sie können querySelector verwenden.

// get txt206451's (first) label
var label = document.querySelector('label[for="txt206451"]');
// change it's content
label.textContent = 'thanks'
4
Paul S.

Basierend auf Ihrem Code habe ich diese Fiddle .__ erstellt.
Sie müssen .__ verwenden.

var cb = document.getElementsByName('field206451')[0];
var label = document.getElementsByName('label206451')[0];


Wenn Sie Namensattribute verwenden möchten, müssen Sie den Index verwenden, da es sich um eine Liste von Elementen handelt, nicht nur um einen einzelnen. Alles andere hat gut funktioniert.

0
JasonWilczak

Versuchen 

verwenden Sie eine id für ein ausgeblendetes Feld und verwenden Sie die ID von checkbox in Javascript.

und ändere auch den 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>
0