[英]why this Javascript function doesn't work?
我使用以下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函數內的警報中獲取表單名稱,checkboxid,文本標識...但是問題出在以下行for (var i=0; i < document.formId.checkboxId.length; i++)
Webdeveloper工具欄顯示此錯誤
document.formId is undefined
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";
}
}
您需要通過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時,Javascript將在使用document.getElementById(formId)時查找名稱為(字面意義為“ formId”)的文檔的屬性。
我認為您在文檔中有多個具有相同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());
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.