0

可能重复:
如何避免将 display:none 隐藏的输入字段发送到服务器?

<div style="display:none;">
  <input type="text"/>
</div>

使用上面的代码,输入将在提交表单时发布。但是如何避免提交隐藏父元素的输入元素呢?任何想法将不胜感激。

4

5 回答 5

1

在发布您的表单时,有一个onClick函数并在其中编写以下代码。此代码将帮助您找到所有div标签,即display:nonediv 为 display:none,它将禁用所有输入元素。

检查这个http://jsfiddle.net/xyuY6/3/

var divs= document.getElementsByTagName('div');
for(var i = 0;i < divs.length; i++) {
    if(divs[i].style.display == 'none') {
        if ( divs[i].hasChildNodes() ){
           var inputs = divs[i].getElementsByTagName('input');
           for(var j = 0;j < inputs.length; j++) {
               inputs[j].disabled = true;
           }
        }
    }
}
于 2012-12-31T05:01:53.223 回答
0

如果在提交之前没有其他方法可以做,请使用 Javascript 从隐藏的 div 中删除所有子元素,这样您就不会在 POST 中获取它们。

于 2012-12-31T04:52:05.060 回答
0

改为使用display:none将解决您的问题。

于 2012-12-31T03:56:29.883 回答
0

设置disabled在输入元素上。

于 2012-12-31T04:00:50.613 回答
0

这不是 PHP 问题,而是 HTML/DOM 问题。正如一个人在您的原始线程上评论的那样,如果您通过 PHP 生成此代码,您应该disabled='disabled'在您的 input 元素中包含以防止提交并在通过 javascript 取消隐藏父元素时删除 disabled 属性以允许再次提交元素值.

如果您需要进一步的帮助,我会在此答案中添加 HTML 和 Javascript 标记。

于 2012-12-31T04:07:00.107 回答