Пожалуйста, помогите мне Jquery может генерировать элемент выбора - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть страница с тремя элементами выбора опций: cat1, cat2, cat3. Ожидаемое поведение: когда я нажимаю в cat1, он должен генерировать cat2, а когда я нажимаю cat2, он должен генерировать cat3. я использую jquery-3.4.1. Я не могу сгенерировать cat3 при нажатии на cat2. пожалуйста, помогите мне решить это. большое спасибо

<html>
<head>
<script type='text/javascript'
  src='D:/test/jquery-form/jquery-3.4.1.js'></script>
<script type="text/javascript">
  $(document).ready(function() {
    //change cat1
    $("#cat1").change(function(){
     console.log('cat1-change value');
     $('#cat2').remove();
     $('#frm').append("<select name='cat2' id='cat2'></select>");
     for(var i=1;i<5;i++)
     {
        str='<option value='+i+'>C2'+i+'</option>';
        $('#cat2').append(str);
     }
    });
    //change cat2
    $("#cat2").change(function(){
     $('#cat3').remove();
     $('#frm').append("<select name='cat3' id='cat3'></select>");
     for(var i=1;i<5;i++)
     {
        str='<option value=C3'+i+'>'+'C3'+i+'</option>';
        $('#cat3').append(str);
     }
    });
  });
</script>
</head>
<body>
 <form id="frm" name="frm" method="post">
  Cat1: 
  <select id="cat1">
    <option value="1">A</option>
    <option value="2">B</option>
    <option value="3">C</option>
  </select><br>
  <br />
  </form>
</body>
</html>

1 Ответ

0 голосов
/ 06 ноября 2019

$(document).ready(function() {
    //change cat1
    $("#cat1").change(function(){
     console.log('cat1-change value');
     $('#cat2').remove();
     $('#frm').append("<select name='cat2' id='cat2'></select>");
     for(var i=1;i<5;i++)
     {
        str='<option value='+i+'>C2'+i+'</option>';
        $('#cat2').append(str);
     }
    });
    //change cat2
    $("#frm").on('change', '#cat2', function(){
     $('#cat3').remove();
     $('#frm').append("<select name='cat3' id='cat3'></select>");
     for(var i=1;i<5;i++)
     {
        str='<option value=C3'+i+'>'+'C3'+i+'</option>';
        $('#cat3').append(str);
     }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="frm">
  <select id="cat1">
    <option value="1">1</option>
    <option value="1">1</option>
  </select>
</form>

Попробуйте это:

$(document).ready(function() {
    //change cat1
    $("#cat1").change(function(){
     console.log('cat1-change value');
     $('#cat2').remove();
     $('#frm').append("<select name='cat2' id='cat2'></select>");
     for(var i=1;i<5;i++)
     {
        str='<option value='+i+'>C2'+i+'</option>';
        $('#cat2').append(str);
     }
    });
    //change cat2
    $("#frm").on('change', '#cat2', function(){
     $('#cat3').remove();
     $('#frm').append("<select name='cat3' id='cat3'></select>");
     for(var i=1;i<5;i++)
     {
        str='<option value=C3'+i+'>'+'C3'+i+'</option>';
        $('#cat3').append(str);
     }
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...