表单中一个input,id="abc"有很多的checkbox,name均为"cityname",类似:<input type="checkbox" value="北京" name="cityname" id="cityname" />
<input type="checkbox" value="上海" name="cityname" id="cityname" />
<input type="checkbox" value="广州" name="cityname" id="cityname" />问题:当点击了相应的checkbox后,将这个值传到abc中?
我用<input type="checkbox" value="北京" name="cityname" id="cityname" onclick="document.form1.abc.value=this.value;" /> 这样似乎只能是把当前点击的值传过去,但是怎么追加呢?比如我点击了多个?像这样的怎么实现:<input name="abc" id="abc" type="text" value="北京,上海,广州" />
<input type="checkbox" value="上海" name="cityname" id="cityname" />
<input type="checkbox" value="广州" name="cityname" id="cityname" />问题:当点击了相应的checkbox后,将这个值传到abc中?
我用<input type="checkbox" value="北京" name="cityname" id="cityname" onclick="document.form1.abc.value=this.value;" /> 这样似乎只能是把当前点击的值传过去,但是怎么追加呢?比如我点击了多个?像这样的怎么实现:<input name="abc" id="abc" type="text" value="北京,上海,广州" />
共享下:<form name="frm">
<input type="checkbox" name="a" value="冰箱" onclick="checkItem();">冰箱
<input type="checkbox" name="a" value="电脑" onclick="checkItem();">电脑
<input type="checkbox" name="a" value="洗衣机" onclick="checkItem();">洗衣机
<input type="hidden" name="b">
</form>
<script>
function checkItem(){
var chkbox=document.getElementsByName("a");
var v="";
for(var i=0;i<chkbox.length;i++){
if(chkbox[i].checked) v+=","+chkbox[i].value;
}
document.frm.b.value=v.replace(/^,{1}/,"");
}
</script>
如果要给abc赋值,在递交前赋值
s =""
var a = document.form1.cityname;
for(var i=0;i<a.length;i++){
if(a[i].checked) s += a[i] + ",";
}
if(s!="") s = s.substr(0,s.length-1);
document.form1.abc.value =s;