重複の可能性:
display:noneによって非表示になっている入力フィールドをサーバーに送信しないようにするにはどうすればよいですか?
<div style="display:none;">
<input type="text"/>
</div>
上記のコードを使用すると、フォームが送信されたときに入力が投稿されます。しかし、親が非表示になっている入力要素を送信しないようにするにはどうすればよいですか?任意のアイデアをいただければ幸いです。
重複の可能性:
display:noneによって非表示になっている入力フィールドをサーバーに送信しないようにするにはどうすればよいですか?
<div style="display:none;">
<input type="text"/>
</div>
上記のコードを使用すると、フォームが送信されたときに入力が投稿されます。しかし、親が非表示になっている入力要素を送信しないようにするにはどうすればよいですか?任意のアイデアをいただければ幸いです。
フォームを投稿するときに、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;
}
}
}
}
disabled
入力要素に設定します。
これはPHPの問題ではなく、HTML/DOMの問題です。ある人が元のスレッドにコメントしたように、PHPを介してこのコードを生成している場合は、送信を防ぐために入力要素にも含める必要がありdisabled='disabled'
ます。また、親要素がjavascriptで非表示になっているときに無効な属性を削除して、要素値を再度送信できるようにする必要があります。 。
さらにヘルプが必要な場合は、この回答にHTMLタグとJavascriptタグを追加します。
代わりに使用display:none
すると、問題が解決します。
送信する前に他にできる方法がない場合は、JavaScriptを使用して非表示のdivからすべての子要素を削除し、POSTで取得しないようにします。