2014-10-30 4 views
-1

Как напечатать значение флажка в поле ввода?Как напечатать значение флажка в поле ввода значения

Его почти принести значение, но не в поле ввода, используя div или span, который будет работать, но мне нужно в поле ввода.

Вот мой код: http://jsfiddle.net/QYyD2/279/

$(function() { 
 
    $(":checkbox").change(function() { 
 
    var arr = $(":checkbox:checked").map(function() { return $(this).val(); }).get(); 
 
    $("#myVal").text(arr.join('/')); 
 
    }); 
 
});
label { display: block; } 
 
.rowSelected { background-color: #eee; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
 

 
<input value="bangalore" type="checkbox" /><label>Bangalore</label> 
 
<input value="chennai" type="checkbox" /><label>Chennai</label> 
 
<input value="pondy" type="checkbox" /><label>Pondy</label> 
 

 
<input type="text" id="myVal" value="">

С уважением РМК

+0

Добро пожаловать в SO. Вы должны разместить свой код здесь. –

ответ

0

Вместо функции jQuery .text(text) вы должны использовать функцию .val(value) для ввода текста.

Функция .text(text) используется для определения текстового содержимого элемента; например простой текст между открывающими и закрывающими тегами («контент» элемента, но лишенный любого HTML-кода, который может быть вложен внутри). Поскольку тег input является самозакрывающимся, он не имеет текстового содержимого.

Наоборот, функция .val(value) используется для установки атрибута «значение» HTML для элемента, а не текстового содержимого. Это правильный способ указать текст, который будет отображаться внутри текстового ввода.

Для получения полного описания функции .val(value) см. jQuery documentation.

Описание: Установить значение каждого элемента в наборе соответствующих элементов. Этот метод обычно используется для установки значений полей формы.

Это рабочая версия вашего кода с учетом приведенного выше изменения.

$(function() { 
 
    $(":checkbox").change(function() { 
 
    var arr = $(":checkbox:checked").map(function() { return $(this).val(); }).get(); 
 
    $("#myVal").val(arr.join('/')); 
 
    }); 
 
});
label { display: block; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
 

 
<input value="bangalore" type="checkbox" /><label>Bangalore</label> 
 
<input value="chennai" type="checkbox" /><label>Chennai</label> 
 
<input value="pondy" type="checkbox" /><label>Pondy</label> 
 

 
<input type="text" id="myVal" value="">

0

Попробуйте

$(function() { 
    $(":checkbox").change(function() { 
    var arr = $(":checkbox:checked").map(function(){ 
     get_value = $(this).val(); 
     $("#myVal").val(get_value); 


    }); 
}); 
}); 
0

добавить имя каждого флажка, как имя = "город "

SCRIPT:

$ (функция() { $ (": галочка".) Изменение (функция() {

var cities = $('input:checkbox[name=city]:checked').map(function() { 

возвращение this.value; }). Get();

var arr = cities.join('\\'); 
    // alert(arr); 

$ ("# myVal"). Val (arr);

}); });

+0

Я думаю, что важная часть здесь (часть, которую неправильно понимает OP) заключается в использовании '.val()' вместо '.text()', поскольку текстовые входы имеют атрибут value, который определяет их содержимое. –

0

Вы можете увидеть здесь рабочую копию: http://jsfiddle.net/QYyD2/336/

Заменить $("#myVal").text(arr.join('/')); на $("#myVal").val(arr.join('/')); в коде JS.