<body>
<form>
<input type="submit" value="提交" name="submit" />
</form>
<input type="checkbox" name="selects" value="1" />
<input type="checkbox" name="selects" value="2" />
<input type="checkbox" name="selects" value="3" />
</body>因为样式问题checkbox被放在了表单之外,怎样可以在提交时,提交表单里的数据,是不是可以有一个隐藏域来存放checkbox中的值,通过JS给隐藏域赋值,或者是用序列化来实现,不管怎么样,用什么方法,能可实现就行。求代码!!!

解决方案 »

  1.   

    <div id="checkbox1" style="display:none"></div>
    写一个不显示的层,然后通过js赋值
    document.getElementBy('checkbox1').innerHTML="..."
    用其他的来实现也可以,比如textarea之类的,自己试试。
      

  2.   


    用隐藏表单域可以的,为checkbox添加onchange事件,将值赋给隐藏表单域
      

  3.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=gbk">
            <script language="JavaScript" src="js/jquery-1.4.2.min.js">
            </script>
            <title>Untitled Document</title>
            <script type="text/javascript" language="JavaScript">
                $(function(){
                 $("input[value='提交']").click(function(){
    var checkboxV = "";
    $("input[type='checkbox'][name='selects']").each(function(index,el){
    if(el.checked){
    if(checkboxV == ""){
    checkboxV = el.value;
    }else{
    checkboxV = checkboxV + "," + el.value;
    }
    }

    });

    alert("before hidden-value:"+$('#_selectsV').val());
    alert("checked value:"+checkboxV);
    //赋值
    $('#_selectsV').val(checkboxV);
    alert("after hidden-value:"+$('#_selectsV').val());

    });


                });
            </script>
        </head>
        <body>
            <form>
                <input type="submit" value="提交" name="submit" />
    <input type="hidden" name="selectsV" id="_selectsV">
            </form>
    <br />
    <input type="checkbox" name="selects" value="1" />
    <input type="checkbox" name="selects" value="2" />
    <input type="checkbox" name="selects" value="3" />
        </body>
    </html>
      

  4.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gbk">  <script language="JavaScript" src="js/jquery-1.4.2.min.js">  </script>  <title>Untitled Document</title>  <script type="text/javascript" language="JavaScript">  $(function(){ $("input[value='提交']").click(function(){ var checkboxV = ""; $("input[type='checkbox'][name='selects']").each(function(index,el){ if(el.checked){ if(checkboxV == ""){ checkboxV = el.value; }else{ checkboxV = checkboxV + "," + el.value; } } }); alert("before hidden-value:"+$('#_selectsV').val()); alert("checked value:"+checkboxV); //赋值  $('#_selectsV').val(checkboxV); alert("after hidden-value:"+$('#_selectsV').val()); }); }); </script>  </head>  <body>  <form>  <input type="submit" value="提交" name="submit" />  <input type="hidden" name="selectsV" id="_selectsV">  </form>  <br />  <input type="checkbox" name="selects" value="1" />  <input type="checkbox" name="selects" value="2" />  <input type="checkbox" name="selects" value="3" />  </body> </html>隐藏域。。
      

  5.   

    不用JQ写吧。。这么简单的功能用JS就可以吧。。思路就是LS的了。
      

  6.   

    楼主你自己都知道方法了,还不只一种.
    但这样其实都不好.最好还是放在一个FORM中.这是从开发逻辑上的要求.开发应该有条有理,尽量顺顺当当,所谓大巧不工.而你现在这样,把原本顺当的事情,偏弄得曲折不堪,一时半会儿你是知道怎么回事,等几个月再来看,自己都会被之前的自己给玩得晕头转向了.何况,本应该能够很自然完成的事情,偏要绕很多弯子去做成,也显示出水平的问题来了,让别人看到岂非不美??
    FORM里是可以含有可见控件的,但它本身并非可见元素,它本身就是一个抽象的隐藏域.
    所以,你可以考虑把FORM扩展得大一些,包含更多的其它"非纯表单控件"部分.这完全没问题,本就是很正常很普遍的情况.