我需要Java脚本将多个复选框的值传递给文本框?
例如: 如果我选中两个复选框,那么我看到文本框显示两个复选框的值,用逗号分隔“咖啡,啤酒”。当我取消选中已选中的复选框时,单独的特定值应该从文本框中消失。
<form name="form1">
<input type="checkbox" name="checkboxname" value="coffee">
<input type="checkbox" name="checkboxname" value="tea">
<input type="checkbox" name="checkboxname" value="beer">
</form>
<form name="form2">
<input type="text" name="textname">
</form>
感谢您的帮助。
答案 0 :(得分:3)
我猜你需要这样的东西:http://jsfiddle.net/Ggxqn/
$("form[name=form1]").on("click", "input[type=checkbox]", function() {
var values = $.map($("input[type=checkbox]:checked"), function(el) {
return el.value;
});
$("form[name=form2]").find("input[name=textname]").val(values);
});
答案 1 :(得分:1)
在每个复选框中添加class =“click_checkbox”,在输入类型文本中添加id =“textname”。
然后在页面中添加此jquery。
$(".click_checkbox").live('click',function(){
var checkbox_value=$(this).val();
if($("#textname").val()=="")
{
var str=$("#textname").val()+checkbox_value;
}
else
{
var str=$("#textname").val()+","+checkbox_value;
}
$("#textname").val(str);
});
只需包含jquery.js。希望它对你有用。
答案 2 :(得分:1)
嗯,我的解决方案并不那么优雅。
var textbox = document.getElementsByName("textname")[0];
var checkboxes = document.getElementsByName("checkboxname");
for (var i = 0; i < checkboxes.length; i++) {
var checkbox = checkboxes[i];
checkbox.onclick = (function(chk){
return function() {
var value = "";
for (var j = 0; j < checkboxes.length; j++) {
if (checkboxes[j].checked) {
if (value === "") {
value += checkboxes[j].value;
} else {
value += "," + checkboxes[j].value;
}
}
}
textbox.value = value;
}
})(checkbox);
}
demo
希望它也能帮到你。