将变量从 FancyBox 传递到父级时未捕获的类型错误

Uncaught TypeError When Passing Variable from FancyBox Into Parent

我在从 FancyBox 传递变量值时遇到问题。首先,我会告诉代码:

这是 FancyBox 中的代码:

JavaScript

function post_value(no){
    parent.setSelectedUser(document.forms[no]["NO_INDUK"].value);
    parent.$.fancybox.close();
}

html

while($baris = mysqli_fetch_assoc($hasil))
        {
            //1 item($baris);
        $no++;
?>
        <tr>
            <form name="<?php echo $no ?>" method='post'>
                <td><?php echo $no ?></td>
                <td><input id="NO_INDUK" class="form-control" type="text" name="NO_INDUK" size="5" value="<?php echo $baris["NO_INDUK"] ?>" readonly/></td>
                <td><?php echo $baris["NAMA_SISWA"] ?></td>
                <td><?php echo $baris["NAMA_WALI"] ?></td>
                <td><?php echo $baris["ALAMAT"] ?></td>
                <td>
                <a class="btn btn-success" href="#" onclick='post_value(<?php echo $no ?>)'> Pilih</a>
                </td>
            </form>
        </tr>

    <?php
         } //untuk while
    ?>

那么这是源页面视图:

html源码查看

<tr>
    <form name="2" method='post'>
        <td>2</td>
        <td><input id="NO_INDUK" class="form-control" type="text" name="NO_INDUK" size="5" value="112312" readonly/></td>
        <td>Angga Lisdiyanto</td>
        <td>asa</td>
        <td>asdsad</td>
        <td>
        <a class="btn btn-success" href="#" onclick='post_value(2)'> Pilih</a>
        </td>
    </form>
</tr>

<tr>
    <form name="3" method='post'>
        <td>3</td>
        <td><input id="NO_INDUK" class="form-control" type="text" name="NO_INDUK" size="5" value="2543" readonly/></td>
        <td>Fina Arzika Humaidah</td>
        <td>Nur Kojim</td>
        <td>Campurejo, Panceng, Gresik</td>
        <td>
        <a class="btn btn-success" href="#" onclick='post_value(3)'> Pilih</a>
        </td>
    </form>
</tr>

然后当我点击按钮 'Pilih' 时,FancyBox 不会关闭并且不会传递值。如果javascript这样的代码,它可以成功传递一个值:

function post_value(no){
    parent.setSelectedUser(no); //just test, passing from no value
    parent.$.fancybox.close();
}

用Chrome调试后,这一行有错误:

parent.setSelectedUser(document.forms[no]["NO_INDUK"].value);

错误信息是:

未捕获的类型错误:无法读取未定义的 属性 'NO_INDUK'

也就是,希望有任何回复,如果有人能帮助我,我会很高兴。 谢谢:)

已解决(我的眼睛变黑了!)。

正如@JFK 所说,onclick='post_value(n)' 传递的是表单索引而不是表单名称。所以我尝试在表单名称中添加几个字符,如下所示:

<form name="form<?php echo $no ?>" method='post' action="">

然后按钮里面是这样的:

onclick='post_value("form<?php echo $no ?>")'

在 JavaScript 上:

function post_value(NamaForm){
    parent.setSelectedUser(document.forms[NamaForm]["NO_INDUK"].value);
    parent.$.fancybox.close();
}

也就是

抱歉,印度尼西亚语可能会让您感到困惑。 :)