将两个值分配给复选框javascript

时间:2016-05-19 14:45:11

标签: javascript jquery

我需要将一个复选框的结果传回两个不同的值。我尝试了一个对象,但结果是未定义的(代码使用一个值)。

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

result.value1始终未定义,而result仅适用于字符串。

使用javascript / jquery执行此操作的最佳方法是什么。

4 个答案:

答案 0 :(得分: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 :(得分:0)

为什么不使用分隔符创建字符串 就像是 value1 \ t value2

你只需要搜索这个分隔符并剪切字符串以获得2个不同的值?

答案 2 :(得分: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

答案 3 :(得分:-1)

看起来你有拼写错误:vaule1应该是value1