将FancyBox中的变量传递给Parent时未捕获的TypeError

时间:2015-02-15 18:56:11

标签: javascript php fancybox parameter-passing parent-child

当我从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>

然后,当我点击按钮&#39; Pilih&#39;时,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);

错误信息是:

未捕获的TypeError:无法读取属性&#39; NO_INDUK&#39;未定义的

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

1 个答案:

答案 0 :(得分:1)

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

正如@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();
}

那就是。

对不起,印度尼西亚语可能会让您感到困惑。 :)