<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给隐藏域赋值,或者是用序列化来实现,不管怎么样,用什么方法,能可实现就行。求代码!!!
<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给隐藏域赋值,或者是用序列化来实现,不管怎么样,用什么方法,能可实现就行。求代码!!!
写一个不显示的层,然后通过js赋值
document.getElementBy('checkbox1').innerHTML="..."
用其他的来实现也可以,比如textarea之类的,自己试试。
用隐藏表单域可以的,为checkbox添加onchange事件,将值赋给隐藏表单域
<!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>
<!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>隐藏域。。
但这样其实都不好.最好还是放在一个FORM中.这是从开发逻辑上的要求.开发应该有条有理,尽量顺顺当当,所谓大巧不工.而你现在这样,把原本顺当的事情,偏弄得曲折不堪,一时半会儿你是知道怎么回事,等几个月再来看,自己都会被之前的自己给玩得晕头转向了.何况,本应该能够很自然完成的事情,偏要绕很多弯子去做成,也显示出水平的问题来了,让别人看到岂非不美??
FORM里是可以含有可见控件的,但它本身并非可见元素,它本身就是一个抽象的隐藏域.
所以,你可以考虑把FORM扩展得大一些,包含更多的其它"非纯表单控件"部分.这完全没问题,本就是很正常很普遍的情况.