javascript听两个单选按钮响应并显示隐藏的文本框

时间:2013-09-29 00:13:39

标签: javascript jquery radio-button html-form

在我的html表单中,我有两组单选按钮,取决于它的响应,我显示一个隐藏的div

我的HTML代码:

<div class="input-quest">Question 1</div>
<div class="input-resp">
<input onClick="question_1_response_yes();" type="radio" name="button1" value="Yes" checked /><label>Yes</label>    
<input onClick="question_1_response_no();" type="radio" name="button1" value="No" /><label>No</label>
</div>  

<div class="input-quest">Question 2</div>
<div class="input-resp">
<input onClick="question_2_response_yes();"  type="radio" name="button2" value="Yes" checked /><label>Yes</label>   
<input onClick="question_2_response_no();"  type="radio" name="button2" value="No" /><label>No</label>
</div>  

<div id="response-q1-yes-q2-yes" style="display:none;">
    <div class="block">
        <div class="input-quest">Question 3</div>
        <div class="input-resp"><span><input  class="textbox" id="q3" name="q3" type="text" value=" " /></span></div>
    </div>
</div>


<div id="response-q1-yes-q2-no" style="display:none;">
    <div class="block">
        <div class="input-quest">Question 4</div>
        <div class="input-resp"><span><input  class="textbox" id="q4" name="q4" type="text" value=" " /></span></div>
    </div>
</div>


<div id="response-q1-no-q2-yes" style="display:none;">
    <div class="block">
        <div class="input-quest">Question 5</div>
        <div class="input-resp"><span><input  class="textbox" id="q5" name="q5" type="text" value=" " /></span></div>
    </div>
</div>

<div id="response-q1-no-q2-no" style="display:none;">
    <div class="block">
        <div class="input-quest">Question 6</div>
        <div class="input-resp"><span><input  class="textbox" id="q6" name="q6" type="text" value=" " /></span></div>
    </div>
</div>

我能够显示隐藏的div取决于使用onclick功能的单个单选按钮,如

function question_1_response_yes()  {
$('#response-q1-yes-q2-yes').slideDown("fast");
$('#response-q1-yes-q2-no').slideUp("fast");
$('#response-q2-no-q2-yes').slideUp("fast");
$('#response-q1-no-q2-no').slideUp("fast");
}

但我需要显示隐藏的文本框取决于两组单选按钮选项,如

  1. 问题1是和问题2是---&gt;显示div response-q1-yes-q2-yes
  2. question-1 yes and question-2 no ---&gt;显示div response-q1-yes-q2-no
  3. 问题1否和问题2是---&gt;显示div response-q1-no-q2-yes
  4. 问题1否和问题2否---&gt;显示div response-q1-no-q2-no
  5. 我必须在两个单选按钮选择后才显示隐藏的div。怎么做呢

    FIDDLE

1 个答案:

答案 0 :(得分:0)

尝试此代码可以肯定。 HTML:

<div class="input-quest">Question 1</div>
    <div class="input-resp">
    <input type="radio" name="button1" value="Yes" id="1yes" checked /><label>Yes</label>    
    <input type="radio" name="button1" value="No" id="1no" /><label>No</label>
    </div>  

    <div class="input-quest">Question 2</div>
    <div class="input-resp">
    <input onClick="response();"  type="radio" name="button2" value="Yes" checked id="2yes" /><label>Yes</label>   
    <input onClick="response();"  type="radio" name="button2" value="No" id="2no" /><label>No</label>
    </div>  

    <div id="response-q1-yes-q2-yes" style="display:none;">
        <div class="block">
            <div class="input-quest">Question 3</div>
            <div class="input-resp"><span><input  class="textbox" id="q3" name="q3" type="text" value=" " /></span></div>
        </div>
    </div>


    <div id="response-q1-yes-q2-no" style="display:none;">
        <div class="block">
            <div class="input-quest">Question 4</div>
            <div class="input-resp"><span><input  class="textbox" id="q4" name="q4" type="text" value=" " /></span></div>
        </div>
    </div>


    <div id="response-q1-no-q2-yes" style="display:none;">
        <div class="block">
            <div class="input-quest">Question 5</div>
            <div class="input-resp"><span><input  class="textbox" id="q5" name="q5" type="text" value=" " /></span></div>
        </div>
    </div>

    <div id="response-q1-no-q2-no" style="display:none;">
        <div class="block">
            <div class="input-quest">Question 6</div>
            <div class="input-resp"><span><input  class="textbox" id="q6" name="q6" type="text" value=" " /></span></div>
        </div>
    </div>

使用Javascript:

function response(){
  if(document.getElementById("1yes").checked && document.getElementById("2yes").checked){
      document.getElementById("response-q1-yes-q2-yes").style.display="inherit";
  }else if(document.getElementById("1yes").checked && document.getElementById("2no").checked){
     document.getElementById("response-q1-yes-q2-no").style.display="inherit";
  }else if(document.getElementById("1no").checked && document.getElementById("2yes").checked){
     document.getElementById("response-q1-no-q2-yes").style.display="inherit";
  }else if(document.getElementById("1no").checked && document.getElementById("2no").checked){
     document.getElementById("response-q1-no-q2-no").style.display="inherit";
  }
}

您可以将上述代码中的.style.display改为.slideUp或.slideDown。 这取决于您的选择,如果它解决了您的问题,请将其作为最佳答案。 它肯定有用......