Jquery сделать заявление if согласно условию - PullRequest
0 голосов
/ 04 мая 2020

У меня есть проблема, чтобы объединить, если еще функция в jquery, она не может показать мне правильно выбрать условие.

Ниже моя кодировка:

<script>
$(document).ready(function(){
    $('#parentid').change(function(){
         if ( $(this).val() == '0' ){
            $('#activity_code, #activity_name,#sub_activity_code,#sub_activity_name,#transaction_code,#transaction_name').attr('readonly', 'readonly');
        }else{
            $('#activity_code, #activity_name').removeAttr('readonly');
        }
        if ( $(this).val() == '1' ){
            $('#function_code, #function_name,#sub_activity_code,#sub_activity_name,#transaction_code,#transaction_name').attr('readonly', 'readonly');
        }else{
            $('#activity_code, #activity_name').removeAttr('readonly');
        }

        if ( $(this).val() == '2' ){
            $('#function_code, #function_name,#activity_code, #activity_name,#transaction_code,#transaction_name').attr('readonly', 'readonly');
        }else{
            $('#sub_activity_code, #sub_activity_name').removeAttr('readonly');
        }

        if ( $(this).val() == '3' ){
            $('#function_code, #function_name,#activity_code, #activity_name,#sub_activity_code, #sub_activity_name').attr('readonly', 'readonly');
        }else{
            $('#transaction_code,#transaction_name').removeAttr('readonly');
        }

        if ( $(this).val() == '4' ){
            $('#function_code, #function_name,#activity_code, #activity_name,#sub_activity_code, #sub_activity_name,#transaction_code,#transaction_name,#category,#request_by').attr('readonly', 'readonly');
        }

    });
});
</script>

На самом деле я хочу показ выходных данных ниже, я хочу, чтобы вывод выходных данных показывал правильно то, что я выбираю номер категории, ниже изображение получит более четкое описание, надеюсь, кто-то может подсказать мне, как решить эту проблему:

Output 1

Это мой html код: https://pastebin.com/N1kqzf8g

1 Ответ

1 голос
/ 04 мая 2020

Чтобы уменьшить код / ​​сложность, вам нужно сбросить ваши входные данные в их положение «по умолчанию» в начале, а затем применить при необходимости:

Используя предоставленный вами код , с минимальными изменениями (добавляется switch, а не несколько, если):

$(document).ready(function() {
  $('#parentid').change(function() {

    // Set all to readonly
    $('#activity_code,#activity_name,#activity_code,#activity_name,#sub_activity_code,#sub_activity_name,#transaction_code,#transaction_name').attr('readonly', 'readonly');

    // check each value and make relevant inputs available

    switch ($(this).val()) {
      case "0":
        $('#activity_code, #activity_name').removeAttr('readonly');
        break;

      case "1":
        $('#activity_code, #activity_name').removeAttr('readonly');
        break;

      case "2":
        $('#sub_activity_code, #sub_activity_name').removeAttr('readonly');
        break;

      case "3":
        $('#transaction_code,#transaction_name').removeAttr('readonly');
        break;

      case "4":
        // all readonly as above
        break;
    }
  });
});
...