将多个复选框的值传递给文本框

时间:2013-06-07 13:38:04

标签: javascript

我需要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>

感谢您的帮助。

3 个答案:

答案 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
希望它也能帮到你。