2016-06-11 4 views
2

私はいくつかの入力を「必須」に設定する方法をいくつかアドバイスしたいと思います。ここでdivが非表示になっている場合にのみ、テキスト入力が必要ですか?

は、私は隠されたdiv要素を表示するために使用するJavaScriptです:

function ShowHide(){ 
if(document.getElementById('addressY').checked){ 
    document.getElementById("addressT").style.display = "block"; 
} else { 
    document.getElementById("addressT").style.display = "none"; 
    } 
} 

と隠しDIV入力フォームの例:

<label class="col-md-4 control-label" for="radios"><b>Did you find an address where the company accepts payments?</b></label> 
<div class="col-md-4"> 
<div class="radio"><label for="radios-1"><input id="addressY" name="spelling" onchange="ShowHide()" required="" type="radio" value="yes" /> Yes </label></div> 

<div class="radio"><input id="addressN" name="spelling" onchange="ShowHide()" required="" type="radio" value="no" /> No</div> 
</div> 
</div> 

<div id="addressT" style="display: none;">&nbsp; 
<div class="form-group"><b><label class="col-md-4 control-label" for="Full Address">Please fill in the full address that you found.</label> </b> 

<div class="col-md-4"><label for="radios-0">Make Check Payable To (Optional): <input class="form-control input-md" id="address1" name="address1" placeholder="" style="width: 100%;" type="text" /></label>  
</div> 

あなたは、フルフォームの例を見ることができますアクションhere

あなたがこれを行うより良い方法を考えることができるなら、私はこれを聞いてみたいと思います。私はjavascriptとjqueryの初心者です。あなたは要素を隠し、ラジオボタンを無効にした場合、あなたの問題はそれほど を解決している。ここ

+0

隠しをして、両方のは、おそらく –

+0

を行います無効にする私です役に立った –

答えて

1

function ShowHide(){ 
if(document.getElementById('addressY').checked){ 
    document.getElementById("addressT").style.display = "block"; 
    for (var i=0, iLen=radios.length; i<iLen; i++) { 
      radios[i].disabled = false; 
     } 
} else { 
    document.getElementById("addressT").style.display = "none"; 
     var radios = document.querySelectorAll("[name='addresstype']") 

     for (var i=0, iLen=radios.length; i<iLen; i++) { 
      radios[i].disabled = true; 
     } 
    } 
} 
+0

こんにちは、私はこの解決策を試してみました。残念ながら私はまだ問題に取り組んでいます。 divが隠されていてもフォームは依然として投稿を許可していません。あなたが考えることができる他の潜在的な解決策? – Rob

+0

@Rob:あなたのリンクでこのソリューションを試してみましたが、それは成功しました... –

+0

@Rob:あなたのページにjqueryが追加されていません –

0

はこのような何か試してみてください:

function ShowHide(){ 
if(document.getElementById('addressY').checked){ 

document.getElementById("addressT").style.display = "block"; 
document.getElementById("divWithRadioButtons").innerHTML = "Write your html code for those radio buttons and make them required" 
} else { 
document.getElementById("addressT").style.display = "none"; 
document.getElementById("divWithRadioButtons").innerhtml=""; 
} 
} 
+0

'innerHTML'(大文字と小文字を区別します)は関数ではなく、それはプロパティです – freefaller

+0

@freefaller指摘のおかげで... document.getElementById(" divWithRadioButtons ")に編集しますinnerHTML = 'あなたのコード' –

関連する問題