neden bu Javascript fonksiyonu çalışmıyor?

2 Cevap php

Ben, aşağıdaki javascript işlevini kullanın

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);

}

ve benim php sayfasında bu var,

<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>

I am getting formname,checkboxid,textid in alerts inside the javascript function... But the problem is with the line for (var i=0; i < document.formId.checkboxId.length; i++)

Webdeveloper araç bu hatayı gösterir

document.formId is undefined

2 Cevap

Aşağıda göreceğiniz, GetElementById (formID) üzerinden formu erişmek gerekir:

  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);
  }

Ne zaman yazmak document.formId JavaScript Adını document.getElementById (formID) Javascript olan id değişkeni formID tutan ne olursa olsun bir HTML öğesi için bakacağız kullandığınızda (kelimenin tam anlamıyla) "formID" olan belgenin bir özellik arar.

Ben belge içinde aynı kimliğe sahip birden elemanlara sahip olduğunu düşünüyorum. Bu geçerli değildir. Kimlikleri benzersiz ve çoklu elemanları atanamaz. Bunun için adını kullanmak ve kullanarak bu öğeleri alabilirsiniz

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(',');

Eğer jQuery gibi bir çerçeve kullanabilirsiniz varsa çok daha basit olurdu

$("input:checkbox[name='CountrycheckId']:checked").each(function(){
    c_value.push(this.value); //or
    c_value.push($(this).val());
});