2017-01-10 5 views
0

私はチェックボックス付きのフォームを持っています。ユーザーがチェックを外すと非表示になっているため、投稿リクエストはフォームアイテムと共に送信されます: "アイテム名" = ""空白)投稿リクエストの非表示のDOM要素を削除しました。

しかし、チェックボックスがチェックされている場合、それはフォームの項目を送信します:「項目名を」私はそれを空白のままにする場合は、非表示DOM要素を「無効」にJSを使っ=「はい」

<input id="fieldX" name="Item Name" type="checkbox" value="Yes" class="" > 
<input id="fieldHidden" name="Item Name" type="hidden" value="" class="" > 

if(document.getElementById('fieldX').checked) { 
document.getElementById('fieldHidden').disabled = true; }; 

Everyチェックボックスを空白のままにすると問題なく動作します。

しかし、チェックボックスをオンにしたときにwiresharkを使用してポストパケットを分析すると、投稿要求に両方の入力が送信されています。

どのように私はチェックボックスがチェックされている場合、私はポストリクエストから隠されたDOM要素を削除するためにJavaScriptを使用することができますか?

ありがとうございます

答えて

0

チェックボックスがオンの場合は非表示の入力を無効にし、オフの場合は有効にします。これを処理するには、changeイベントハンドラを使用します。

document.getElementById('fieldX').addEventListener('change', function() { 
    document.getElementById('fieldHidden').disabled = this.checked; 
}); 
+0

入力が同じ名前にできないと申し訳ありませんか?もし私が間違っているなら、私はJSにとても慣れています。他の側のフォームハンドラである理由は、空またははいのどちらかとして特定のフィールドを取ることができる必要があります(したがって、同じ名前を持つ理由) – SpaceTime

+0

@SpaceTime:私はちょうど私の答えを更新しました......追加してくださいコードの最後にあるスクリプトを試してみてください.... –

関連する問題