使用getElementsByTagName更改表单目标的简单方法?

时间:2013-05-10 18:37:59

标签: php javascript forms target

我在PHP文件中有一个表单,我希望将其包含在其他页面的iframe中的各种其他文件中。在某些情况下,表单目标应为_top,但在其他情况下_blank。所以在我看来,我应该能够在一个单独的PHP文件中设置目标,然后在该文件中包含包含该表单的PHP文件。基于我在网上找到的东西(我在这里是新手),在我看来,像

这样简单
<script type-"text-javascript">
document.getElementsByTagName('form').target = "_top";
</script>

应该能够做到这一点。但这不起作用 - 目标只是默认并在iframe中打开。是否有一些简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

getElementsByTagName返回一个集合。循环遍历它,或者只使用[0]获取第一个...然后设置target属性:

document.getElementsByTagName('form')[0].target = "_top";

var forms = document.getElementsByTagName('form');
for (var i = 0; i < forms.length; i++) {
    forms[i].target = "_top";
}

请注意,在 <form>可用/呈现在页面上之后,必须执行其中任何一项。因此,这意味着在<{1}}之后<{1}}或<form>事件内部,将此代码字面上

参考:

答案 1 :(得分:1)

由于您使用的是PHP文件来调用表单的PHP文件,为什么不设置变量?

form.php的:

<form target="<?php echo $target; ?>">

parent.php:

<?php
$target="_top";
include "form.php";
?>

some_other.php:

<?php
$target="_blank";
include "form.php";
?>

现在我真正的建议是将你的表单变成一个函数(例如 - outputForm),这样你就可以在需要表单的每个PHP文件的顶部做一个include_once并调用outputForm(“_ blank”)你需要表格。