отображать модель, когда я выбираю значение «1» с помощью javascript

#javascript #html #thymeleaf

#javascript #HTML #thymeleaf

Вопрос:

 <div class="col-md-4 bg-warning">状態</div>
                <div class="col-md-8 pd-all-2px">
                    <select class="form-control" id="approvalstate" th:field="*{approvalstate}">
                        <option th:value="0" th:text="未返信"></option> 
                        <option th:value="1" th:text="返信済"></option>
                      </select>
                </div>  
  

как отобразить модель, когда я выбираю значение «1» с помощью javascript?
только для значения «1»

Комментарии:

1. у вас есть javascript для этого?

2. нет, я не знаю, как создать код javascript

Ответ №1:

Добро пожаловать в Stack Overflow! Я помогу вам с этим, но, пожалуйста, найдите время, чтобы прочитать документацию и изучить. Отличная библиотека, которая упростит написание Javascript, — это jQuery.

Способ jQuery:

 $('#approvalstate').on('change', function() {
    if($(this).val() == 1) {
    //Execute true logic
  } else {
    //Execute false logic
  } 
});
  

Способ, отличный от jQuery:

 document.getElementById('approvalstate').addEventListener('onchange', function(e) {
    if(e.value == 1) {
    //Execute true logic
  } else {
    //Execute false logic
  } 
});
  

Комментарии:

1. Пожалуйста, используйте способ, отличный от jQuery, если вы не включаете файл javascript jQuery (чего, я думаю, вы не сделали).

2. @denimaya сработал ли этот или другой ответ для вас? Если да, пожалуйста, отметьте тот, который помог вам больше всего, как «ответ», используя галочку слева от нашего поста.

Ответ №2:

@Matthew почти корректен с использованием jQuery, но именно так его и следует использовать. В противном случае вы получите пустое возвращаемое значение, поскольку у вас нет значения в ваших параметрах.

 <script>

    $(function() {
        $('#approvalstate').change(function() {
            var selected = $(this).find('option:selected');

            if(selected.length) {
                var value = selected.attr('th:value');

                if(value === '1') {
                    console.log('1 selected');
                }
            }
        });
    });

</script>
  

Ответ №3:

Используйте приведенный ниже код для решения проблемы. я использовал bootstrap model и jquery для решения этой проблемы.

   $('#approvalstate').change(function() {
            var selected = $(this).find('option:selected').val();

            if(selected != 0) {
            	$('#myModal').modal('show');
                console.log(selected);
            }            
});  
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<div class="col-md-4 bg-warning">状態</div>
<div class="col-md-8 pd-all-2px">
<select class="form-control" id="approvalstate">
<option>0</option> 
<option>1</option>
</select>
</div> 
                
                <div class="container">
  <h2>Modal Example</h2>
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">amp;times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
</div>