我在一个以上的地方使用了一些html代码,我把它放在一个.php文件中并在需要的地方包含它。在一种情况下,我将此代码包含在表单中。
这个表格有一个元素;并且在表单内部,是包含具有html代码的php文件。
我发现.php文件中包含的html无法访问表单元素,但与表单在同一页面上的一个元素没有这样的麻烦。
这是包含在单独的.PHP文件中的代码:
// inside theIncluded.php
<div id="aDivToBeIncluded">Testing</div>
这是我的表单声明 - 签名看起来过于复杂,因为我为此解释删除了其他元素(文本框等):
<form style="display: inline-block" name="areaComboboxForm" method="post"
autocomplete="off" enctype="multipart/form-data">
<select name="mySelect" id="mySelectId" onchange="return doChange(this)" >
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
</select>
<?php require_once("theIncluded.php") ?>
</form>
这是一个麻烦的代码:
function doChange(theSelect)
{
var theSelect = document.getElementById('mySelectId');
// THIS REPORTS THAT THE FORM IS 'objectHTMLFormElement'
alert("doChange(), the form is: " + theSelect.form);
var theIncludedDiv= document.getElementById('aDivToBeIncluded');
// THIS REPORTS THAT theIncludedDiv IS 'objectHTMLDivElement'
alert("doChange(), the included Div is: " + theIncludedDiv);
// THIS REPORTS THAT theIncludedDiv.form IS 'undefined'
alert("doChange(), the form is: " + theIncludedDiv.form);
}
回顾一下,我在.php文件中包含一些html代码,该文件有一个DOM元素,一个div。 当在包含.php文件的页面上访问该div时,该div将解析为 objectHTMLDivElement。
但是当我尝试访问包含objectHTMLDivElement的.form时 - 表单是'undefined。'
这有什么理由吗?所有这些代码都在同一个Web服务器上的同一个文件夹中,即localhost XAMPP Web服务器。
答案 0 :(得分:0)
根据你的代码,div在表单中,没有自己的.form。
如果你想要表单元素,你会找theIncludedDiv.parentNode
。
.form
只是HTML4中的HTMLInputElements属性,HTML5中有一些不同的行为(可以是表单元素的id
或null)。