2016-06-17 17 views
0

私はJQueryで何かを達成しようとしており、動作させることができません。 JQueryの人ではないということは、私と関係があります。だから、これは間違っていると確信しています。隠し要素の子要素をjqueryで入力する属性を追加しますか?

私は非常に大きなフォームを持っていて、ラジオボタンの値が選択されているかどうかによっては、特定のフォームセクションが表示されない場所に条件があります。だから、私がやったことは、特定の値が選択されたときにdiv要素に「hide-me」クラスを追加または削除して、内部のすべてのフォームフィールドが表示されないようにすることです。問題は、必要なものがあれば、フォームは提出されず、表示されないフィールドには記入できません。だから私がしたいのは、フォームが提出されたときに、div-myクラスのクラス内のすべての子入力要素を最初に取得し、無効の属性を設定する必要があります。

どうすればこの問題を解決できますか?このonsubmitを行うために、私はあなたがこれを行うにしようと理解していない、

$('.hide-me').children("input").attr("disabled", true); 

しかしhttp://codepen.io/amarit84/pen/KMgKRd

$('#test_form_id').submit(function() { 
    $('.hide-me').children(":input").prop("disabled", true); 
}); 
+0

[既に動作しています](https://jsfiddle.net/bu7tjucv/)、そうですか? – nicael

+0

jqueryでの経験はあまりありませんが、入力要素が複数あるので、正しいですか?私はあなたが '.each()'を見つけていないと思っています。 – KanisXXX

+1

@Vijay OPのコードはすでに追加なしで動作しています。 – nicael

答えて

1

あなたのsubmit()の外に置くだけで、あなたのサンプルが動作しないので、私はあなたのコードにjqueryを追加しました。

$('.hide-me').children(":input").prop("disabled", true); 
$('#test_form_id').submit(function() { 

}); 

隠し入力を無効にするには、jQueryのコードは、あなたの(提出の内側にあるので、それは常に隠されたフォームを埋めるためにトリガーされます)、HTML5の検証は、コードが文句を言わない隠された入力を無効に実行する理由のthatsを提出トリガーからあなたを停止しています。 codepen sample updated

+0

ありがとうございます。私はちょっと混乱していると思いますが、フォームがjqueryの最初の行を実行する方法を知っていますか?それは私がそれをsubmit関数に入れる唯一の理由です。 – lpangm03

+0

それは分かりません。関数の外側にある場合、この最初の行はonloadで実行されます。 –

+0

私は実際にそれについて解説することはできません。そして、私は今、codepenが最初の行をどのように読むことができるのか説明するのは大したことはありませんが、通常は$ document.readyを追加してページが準備できたらスクリプトを実行します。あなたの私の答えが受け入れ可能だと思うなら、答えとして受け入れてください、ありがとう。 [jquery document ready](https://learn.jquery.com/using-jquery-core/document-ready/) – Efx

0

はこれを試してみてください:ここで

は、いくつかのサンプルコードです。ページはとにかくリロードされます...

Here's a Fiddle変更されたコード。

+0

有効なリンクを作成するためにFiddleを更新しました。作業。 –

関連する問題