0

可能な解決策ですが、機能させることができません:

$(function(){
  $('input[name="q10"]').click(function(){
    if ($(this).is(':checked'))
    {
    var flag=0;

    $("input[type='radio']:checked").each(function() {
      if($(this).val()==1 || $(this).val()==2 ){
        $("#disagree").show();
         flag++;
      }
      else if(($(this).val()==3 || $(this).val()==4) && flag==0)
        $("#agree").show();
    });
    }
  });
});

次のように、10の質問があるページがあります-各質問の応答スケールがあります。

<div id="rq1" class="row" onmouseover="changeBackgroundColor(this.id)" onmouseout="changeBackgroundColor2(this.id)">
<div class="col1">1.</div>
<div class="col2a">Question text</div>
<div class='colans'>
      <input  name='q1' value='4' id='q1a4' type='radio' onclick='mand();' />
</div>
<div class='colans'>
      <input  name='q1' value='3' id='q1a3' type='radio' onclick='mand();' />
</div>
<div class='colans'>
      <input  name='q1' value='2' id='q1a2' type='radio' onclick='mand();' />
</div>
<div class='colans'>
      <input  name='q1' value='1' id='q1a1' type='radio' onclick='mand();' />
</div>
<div class='colans'>
      <input  name='q1' value='-1' id='q1a-1' type='radio' onclick='mand();' />
</div>
</div>

上記は、q1 から q10 までの 10 の質問のそれぞれについて繰り返されます。

10 個の質問の最後に、textareasユーザーがコメントを書き込める場所が 2 つあります。ただし、最初の質問は、ユーザーが値 2 または 1 のいずれかの応答を選択textareaした場合に表示される必要があります。2 番目の質問は、ユーザーが任意の応答を選択した場合に表示される必要があります。値は 4 または 3 ですが、値が 2 または 1 の応答は選択されていません。textarea

最後に、ユーザーが最後の質問である質問 10 に回答したら、jQuery を実行する必要があります。この時点で、実行するコードが必要です。

以前は、レスポンスごとに Javascript コードを手動で作成して確認していましたが、jQuery を使用してもっとすっきりとした簡潔な方法があるのではないかと思いました。

4

2 に答える 2

1

私はコードを適切にフォーマットしていませんが、これが役立つと思います.また、与えられた最後の回答を確認しました.このオブジェクトにアクセスするたびに良い考えではないと思います.しかし、それは私の意見です. ではごきげんよう :-)

`var myradio = $('input[name=nettype]');
var nettype = myradio.filter(':checked').val();

if(nettype ==1 || nettype ==2 )
{
 $("#myTextArea1").show();
 $("#myTextArea2").hide();
}
else if(nettype ==3 || nettype == 4 )
{
 $("#myTextArea2").show();
 $("#myTextArea1").hide();
}`

前の回答に追加したコメントについては、次のコードを追加できます

`if ( $('.myClass').filter(function(){
    return $(this).val() != '';
    }).length == 0
 )
 {
  /* code to run when all are empty */

 }`

このクラス名 myClasses をテキストボックスに追加して、すべてのテキストボックスが回答されたときにラジオボタンのコードを起動できるようにします。:-)

于 2013-07-24T10:14:51.833 に答える
0
var flag=0;

$("input[type='radio']:checked").each(function() {
  if($(this).val()==1 || $(this).val()==2 ){
    $("#myTextArea1").show();
     flag++;
  }
  else if(($(this).val()==3 || $(this).val()==4) && flag==0)
    $("#myTextArea2").show();
});

最後の質問に答えたら、このコードを起動してください!!

更新:これは完全なコードです...

 $(document).ready(function() {

   $("#disagree").hide();
   $("#agree").hide();

   $("input[name='q10']").click(function() {

    $("#disagree").hide();
    $("#agree").hide();

    var flag=0;

    $("input[type='radio']:checked").each(function() {

       if($(this).val()==1 || $(this).val()==2 ){

           $("#disagree").show();
           $("#agree").hide();
           flag++;
       }

      else if(($(this).val()==3 || $(this).val()==4) && flag==0)

           $("#agree").show();
   });
 });    
});
于 2013-07-24T10:01:44.563 に答える