Скрыть пустые входные данные в динамической форме

#javascript

#javascript

Вопрос:

Когда я возвращаю динамическую форму, я намерен скрыть входные данные, когда она возвращает пустое или нулевое значение.

Например, как вы можете изменить строки:

Id = 1 NumCap = 1 Capitulo = teste

Id = 2 NumCap = Capitulo =

Id = 3 NumCap = 2 Capitulo = teste1

При возврате формы, при возврате строки с Id = 2, скройте два входных данных, потому что они приходят пустыми.

Я возвращаю форму следующим образом:

 success:function(data1){
  var linha1 = ``;
  for (var i = 0; i < data1.length; i  ) { 
    Id = data1[i][0];
    NumCap = data1[i][14];
    Capitulo = data1[i][15];
    
    linha1  = `<div class="teste1">
               <div class="form-group col-md-2 testeeeee">                      
                 <input type="text" class="form-control1 alinha" name="Capitul[]" value="${NumCap}">
                 <span class="form-highlight"></span>                       
                 <span class="form-bar"></span>                     
                 <label class="label3" for="Capitulo">Nº Capitulo</label>        
                </div>
                <div class="form-group col-md-4 testeeeee">                     
                  <input type="text" class="form-control1" name="Capitul1[]" value="${Capitulo}">
                  <span class="form-highlight"></span>                      
                  <span class="form-bar"></span>                        
                  <label class="label1" for="Capitulo">Capitulo</label>        
                </div>
                </div>
}
  

Я пытаюсь поместить этот код перед запуском возврата формы:

 if(!NumCap amp;amp; !Capitulo){
  $('.testeeeee').show();
}else{
  $('.testeeeee').hide();
}
  

Но это не работает.

Ответ №1:

 success:function(data1){
  var linha1 = ``;
  Object.keys(data1).forEach(i=>{ 
    Id = data1[i][0];
    NumCap = data1[i][14];
    Capitulo = data1[i][15];
    if(!Id.length||!NumCap.length||!Capitulo.length){return;} //if any length of these values are 0, don't put them into linha1
    linha1  = `<div class="teste1">
           <div class="form-group col-md-2 testeeeee">                      
             <input type="text" class="form-control1 alinha" name="Capitul[]" value="${NumCap}">
             <span class="form-highlight"></span>                       
             <span class="form-bar"></span>                     
             <label class="label3" for="Capitulo">Nº Capitulo</label>        
            </div>
            <div class="form-group col-md-4 testeeeee">                     
              <input type="text" class="form-control1" name="Capitul1[]" value="${Capitulo}">
              <span class="form-highlight"></span>                      
              <span class="form-bar"></span>                        
              <label class="label1" for="Capitulo">Capitulo</label>        
            </div>
            </div>`
  })
}
  

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

1. Это более или менее то, что я хочу, проблема в том, что после входных данных, которые я ввел в вопрос, у меня есть больше входных данных, и таким образом, если эти два входа пусты, они также скрывают другие входные данные. Я намеревался просто скрыть эти два и показать другие iput в соответствии с этим циклом

Ответ №2:

Вы можете использовать это, чтобы проверить пустое значение и скрыть текстовое поле

    if(jQuery(".testeeeee > .form-control1").length > 0){
    $(".testeeeee > .form-control1").each(function(){
    if($(this).val() == ''){
        $(this).hide();
    }else{
        console.log("TEXTBOX IS NOT EMPTY t n");
       $(this).show();
    }
    });
    }
  

дайте мне знать, если это вам поможет.

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

1. Я получаю эту ошибку «не удается прочитать свойство ‘length’ неопределенного»

2. Я использовал его, но он не работает. Можете ли вы поместить это в мой включенный код, чтобы понять, как применить ваше решение?