2016-05-03 14 views
0

で隠されていないフィールドには、私は、フィールドでの問題、 コード HTMLフォームは、最初

<span id="sudaner"> 
    <input type="radio" name="traveledis" checked value="0" >No 
    <input type="radio" name="traveledis" value="1" />Yes 
</span> 

<div id="sudandetails">` 

を持っており、これは、JSコード

$("#sudaner input[type='radio']").click(function(){ 
    if($(this).attr("value")=="1"){ 
     $("#sudandetails").css("display","block"); 
     $("#countries").prop('required',true); 
     $("#bcfrom").prop('required',true); 
     $("#bcto").prop('required',true); 
     $("#country_reason").prop('required',true); 
    } 
    else { 
     $("#countries").prop('required',false); 
     $("#countries").val(""); 
     $("#bcfrom").prop('required',false); 
     $("#bcfrom").val(""); 
     $("#bcto").prop('required',false); 
     $("#bcto").val(""); 
     $("#country_reason").prop('required',false); 
     $("#country_reason").val(""); 
     $("#sudandetails").css("display","none"); 
    } 
}); 

私はを持っている」です'を有効にしました。' NO 'ですが、フォームに行くと、'いいえ 'がデフォルトで表示されますが、フィールドは最初は非表示になっていません。 「はい」ともう一度「いいえ」で選択を移動する必要があります。フィールドが非表示になっているか、「いいえ」で2回クリックするとフィールドが非表示になります。私は最初にフィールドが隠されていない理由を理解していません。

ありがとうございました

+0

それはあなたの問題に収まる場合ドンの 'tは正しいような答えを受け入れることを忘れています。 –

答えて

0

私はあなたのためにフィドルを作成し、機能とclick機能を独自のハンドラで組み合わせました。 on clickの値を確認できるだけでなく、ドキュメントが読み込まれたときにクリックがないため何も起こりません。

https://jsfiddle.net/ww582Lj9/

function myHandler(e) { 
    if($(this).attr("value")=="1"){ 
      $("#sudandetails").css("display","block"); 
      $("#countries").prop('required',true); 
      $("#bcfrom").prop('required',true); 
      $("#bcto").prop('required',true); 
      $("#country_reason").prop('required',true); 
     } 
     else { 
      $("#countries").prop('required',false); 
      $("#countries").val(""); 
      $("#bcfrom").prop('required',false); 
      $("#bcfrom").val(""); 
      $("#bcto").prop('required',false); 
      $("#bcto").val(""); 
      $("#country_reason").prop('required',false); 
      $("#country_reason").val(""); 
      $("#sudandetails").css("display","none"); 
     } 
} 

$(document).ready(myHandler); 
$("#sudaner input[type='radio']").on("click", myHandler); 
+0

ありがとう、完璧でした! –

0

最初にこのdivを非表示にする必要があります。あなたのスクリプト

$("#sudandetails").hide(); 

にこの行を追加します。あなたは、クリックしたときに、ページの読み込みをクリックしてイベントがトリガされませにイベントをバインドします。

関連する問題