我需要将一个复选框的结果传回两个不同的值。我尝试了一个对象,但结果是未定义的(代码使用一个值)。
' <input type="checkbox" id="cat" value="'+{value1: data.blue, value2: data.red} +'"/>'
result.value1始终未定义,而result仅适用于字符串。
使用javascript / jquery执行此操作的最佳方法是什么。
答案 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'
答案 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