我有一个表单,在提交之前我通过JavaScript添加了一个元素。
parent.document.getElementById('submitcomment' + id).innerHTML = '<img class="image_real" src="/images/site.png" alt="Mostly Dirty," />
<input class="real" name="freshness" type="text" size="5" maxlength="6" />
<a href="#" onClick="submitComment('+[id]+'); return false;">
<img id="submitcommentimg<?php echo $id; ?>" src="images/check.png" alt="Comment!" border="0"></a>
<div class="submitcommentalert" id="comment_alert_<?php echo $id; ?>" style="display:none">Comment Posted!</div>';
提交表单时似乎缺少'freshness' <input> element
如果我尝试访问$_POST['freshness'];
,那么它就是空的。
答案 0 :(得分:0)
新鲜度中没有值属性,这可能是问题所在。您是否检查过$ _POST ['fresh']甚至存在(isset())?
答案 1 :(得分:0)
执行上述代码时,DOM是否会使用新添加的内容进行更新?还要检查FireBug实际发布到服务器的内容。您还在使用parent.document
- 可能会出现一些iframe
个问题吗?
更新:
尝试重现问题我已经提出了这个按预期工作的片段(当你提交表单时,freshness
输入的值被正确传递):
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function addDynamicContent() {
document.getElementById('myForm').innerHTML =
'<input name="freshness" type="text" />' +
'<a href="#" onclick="return submitComment();">Submit</a>';
}
function submitComment() {
document.getElementById('myForm').submit();
return false;
}
</script>
</head>
<body>
<input type="button" value="Add dynamic content" onclick="addDynamicContent();" />
<form id="myForm"></form>
</body>
</html>
现在你可以根据自己的需要调整它。