0

重複の可能性:
display:noneによって非表示になっている入力フィールドをサーバーに送信しないようにするにはどうすればよいですか?

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

上記のコードを使用すると、フォームが送信されたときに入力が投稿されます。しかし、親が非表示になっている入力要素を送信しないようにするにはどうすればよいですか?任意のアイデアをいただければ幸いです。

4

5 に答える 5

1

フォームを投稿するときに、onClick関数を作成し、その中に以下のコードを記述します。このコードは、divがdisplay:noneであるすべてのdivタグを見つけるのに役立ち、すべての入力要素を無効にします。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

disabled入力要素に設定します。

于 2012-12-31T04:00:50.613 に答える
0

これはPHPの問題ではなく、HTML/DOMの問題です。ある人が元のスレッドにコメントしたように、PHPを介してこのコードを生成している場合は、送信を防ぐために入力要素にも含める必要がありdisabled='disabled'ます。また、親要素がjavascriptで非表示になっているときに無効な属性を削除して、要素値を再度送信できるようにする必要があります。 。

さらにヘルプが必要な場合は、この回答にHTMLタグとJavascriptタグを追加します。

于 2012-12-31T04:07:00.107 に答える
0

代わりに使用display:noneすると、問題が解決します。

于 2012-12-31T03:56:29.883 に答える
0

送信する前に他にできる方法がない場合は、JavaScriptを使用して非表示のdivからすべての子要素を削除し、POSTで取得しないようにします。

于 2012-12-31T04:52:05.060 に答える