2016-05-19 3 views
0

Мне нужно передать два разных значения в качестве результата из одного флажка. Я попробовал объект, но результат был неопределенным (код работает с одним значением).Назначение двух значений флажку javascript

' <input type="checkbox" id="cat" value="'+{value1: data.blue, value2: data.red} +'"/>' 

result.value1 всегда не определено, тогда как результат работает только для строки.

Каков наилучший способ сделать это с помощью javascript/jquery.

ответ

3

Вы можете использовать attr для добавления дополнительных значений, например:

<input type="checkbox" id="cat" data-value1="blue" data-value2="red" value=""/> 

Получить значение с помощью JQuery, используйте:

$("#cat").data("value1");//return 'blue' 
$("#cat").data("value2");//return 'red' 

Результат:https://jsfiddle.net/cmedina/a0ya5bwp/

-1

это выглядит, как у вас есть орфографическая ошибка: vaule1 должна быть value1

+0

изм. Я переименовал переменные, чтобы сделать их более ясными. – user1212520

+0

приятный downvote для определения орфографической ошибки ... –

0

Почему бы не создать строку с разделителем Что-то вроде значению1 \ т значение2

И вы просто должны искать этот разделитель и вырезать строку, чтобы получить свои 2 Differents значения?

+0

Спасибо, это был мой первоначальный план, но я думал, что у меня есть свой тестовый объект для работы. Объектом будет самый простой маршрут (если он работает). – user1212520

0

Вы можете укрепить объект и поместить это значение на вход в качестве атрибута данных, в обработчике изменений ввода, проанализировать строку в JSON.

HTML

<input type="checkbox" id="cat" name="cat"> 
<label for="cat">Cat</label> 

Javascript

var input = document.getElementById('cat'); 
var testValue = {value1: 'blue', value2: 'red'}; 

input.setAttribute('data-value',JSON.stringify(testValue)); 

input.addEventListener('change', function(event) { 
    var inputValue = JSON.parse(event.target.getAttribute('data-value')); 
    console.log(inputValue); 
}); 

Демо: JSFiddle

Смежные вопросы