我使用以下javascript函数,
function get_check_value(formId,checkboxId,TxtboxId)
{
alert(formId);
var c_value = "";
for (var i=0; i < document.formId.checkboxId.length; i++)
{
if (document.formId.checkboxId[i].checked)
{
c_value = c_value + document.formId.checkboxId[i].value + "\n";
}
}
alert(c_value);
document.getElementById(TxtboxId).value= c_value;
// alert(c_value.value);
}
我的php页面有这个,
<form name="orderform" id="orderform">
<input type="text" name="chId" id="chId" >
<table align="center" border="0">
<tr>
<td>Country</td>
</tr>
<? foreach($country as $row){ ?>
<tr>
<td><?= $row['dbCountry']; ?></td>
<td><input type="checkbox" name="CountrycheckId" id="CountrycheckId" value="<?= $row['dbCountryId']; ?> " onClick="get_check_value('orderform','CountrycheckId','chId')"></td>
<? } ?>
</tr>
</table>
</form>
我在javascript函数内的警报中获取了formname,checkboxid,textid ......但是
问题在于线
for (var i=0; i < document.formId.checkboxId.length; i++)
Webdeveloper工具栏显示此错误
document.formId is undefined
答案 0 :(得分:4)
var selects = document.getElementsByName('CountrycheckId');
for (var i=0; i < selects.length; i++)
{
if (selects[i].checked)
{
c_value = c_value + selects[i].value + "\n";
}
}
答案 1 :(得分:0)
您需要通过getElementById(formId)访问表单,如下所示:
function get_check_value(formId,checkboxId,TxtboxId)
{
alert(formId);
var c_value = "";
for (var i=0; i < document.getElementById(formId).checkboxId.length; i++)
{
if (document.formId.checkboxId[i].checked)
{
c_value = c_value + document.formId.checkboxId[i].value + "\n";
}
}
alert(c_value);
document.getElementById(TxtboxId).value= c_value;
// alert(c_value.value);
}
当您编写document.formId时,当您使用document.getElementById(formId)时,Javascript将查找文档的属性(字面意思)为“formId”.Javascript将查找其id为任何变量formId的HTML元素保持。
答案 2 :(得分:0)
我认为你在文档中有多个具有相同id的元素。这是无效的。 ID是唯一的,不能分配给多个元素。您可以使用此名称并使用
获取这些元素document.getElementsByName("name");
var checkBoxes = document.getElementsByName('CountrycheckId');
var c_value = new Array();
for (var i=0; i < checkBoxes.length; i++)
{
if (checkBoxes[i].checked)
{
c_value.push(checkBoxes[i].value);
}
}
// join the array using any delimiter like
c_value.join(',');
如果你可以使用像jQuery这样的框架,那就更简单了
$("input:checkbox[name='CountrycheckId']:checked").each(function(){
c_value.push(this.value); //or
c_value.push($(this).val());
});