Подтвердить что ты не робот

JQuery с идентификатором ввода, получить текст метки

В моих HTML-формах (как и в большинстве форм HTML) метки имеют те же идентификаторы, что и поля. Я пытаюсь вернуться к HTML-тегу метки после установки флажка с соответствующим идентификатором.

<input id="yes1" type="checkbox">
<label for="yes1">This is the text it should return.</label>

И мой jQuery:

$('input').change(function() {
    if (this.checked) {
        var response = $('label#' + $(this).attr('id')).html();
    }
}

Но, увы, ответ появляется как NULL.

4b9b3361

Ответ 1

$('input').change(function() {
    if (this.checked) {
        var response = $('label[for="' + this.id + '"]').html();
    }
});

Не нужно получать идентификатор от атрибута.

Демо: http://jsfiddle.net/wycvy/

Ответ 2

вот основной пример согласно вашему требованию. Вам нужно html-содержимое с метки рядом с вашим флажком, если он установлен.

используйте этот

HTML

<div>
<form >
<input type="checkbox" id="yes" /><label for="yes">text yes </label>
<input type="checkbox" id="no" /><label for="no">text no</label>

 </form>


</div>

JQUERY

$('input').change(function() {
        if (this.checked) {
            var response =  $(this).next("label").html();
            alert(response);
        }
    })

Ответ 3

ваш синтаксис был немного взломан, попробуйте настроить HTML так

<input id="yes1" type="checkbox" />
<label for="yes1" id="yes1-label">This is the label</label>

а затем используйте jquery так

$("#yes1").click(function() {
 if ($("#yes1").is(":checked")) {
   /* it not really clear what you are trying to do here */
   var response = $("#label").attr("id");
   $("#yes1-label").text(response); 
 }
});