Как очистить значения textbox2 (динамически добавляются при выборе автозаполнения textbox1), когда textbox1 очищается - PullRequest
0 голосов
/ 04 июня 2019

У меня есть текстовое поле, и при автозаполнении этого текстового поля я добавляю еще несколько текстовых полей со значениями.

Ниже приведен код.

 $(".autocomplete").autocomplete({
            source: function (request, response) {
                console.log(request.term);
                var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
                $.ajax({
                    type : 'POST',                                       
                    url : config.vnfURL + 'vnf/getPRIM',
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                     data: {
                      q: request.term
                      },
                    success: function (data) {
                        console.log(response);
                        response($.map(data, function(v,i){
                            var text = v.acronym;
                            var text2=v.functionDesignation;
                            if ( text && ( !request.term || matcher.test(text) ) ) {
                                return {
                                     label: v.acronym.concat("_", v.functionDesignation,"_",v.versionDesignationText, "_",v.rstate,"_",v.productNumber),                                     
                                      };
                            }
                        }));
                    }
                });
            },
            select: function (event, ui) {

                var primArray=ui.item.value.split('_');             
                event.preventDefault();             
                $("#emsProductName").val(primArray[1]);
                $("#emsRelease").val(primArray[2]);
                $("#emsRelease").prop('disabled', true);    

                if(!$('#emsdynamic').length){
                     var divHTML = '<div  id="emsdynamic">' +
                        '<div class="col-md-4 col-sm-4 col-xs-4">'+
                    '<label class="control-label">Product Number</label>'+
                    '<input type="text" class="form-control" id="emsProductNumber" disabled />'+
                    '</div>'+
                    '<div class="col-md-4 col-sm-4 col-xs-4">'+
                    '<label class="control-label">R State</label>'+
                    '<input type="text" class="form-control" id="emsRstate" disabled/>'+
                    '</div>'+
                    '</div>';
                    $("#emsDivision").append(divHTML);
                    $("#emsProductNumber").val(primArray[4]);
                    $("#emsRstate").val(primArray[3]);
                }
                else{
                    $("#emsProductNumber").val(primArray[4]);
                    $("#emsRstate").val(primArray[3]);
                }


            }
           /* change: function(e) {
                $('#emsProductNumber').val('');
                $("#emsRstate").val('');
                $('#emsRelease').val('');
                $("#emsRelease").prop('disabled', false);
                $("#emsdynamic").hide();
            }*/

        });  

Все работает нормально. Теперь, если я очищаю значение текстового поля автозаполнения (emsProductName), как я могу очистить значения динамически создаваемых tetxboxes?

Я пытался изменить событие, но оно не работает должным образом.

1 Ответ

0 голосов
/ 04 июня 2019

вы можете достичь с помощью keyup, как fiddle

$('.autocomplete').keyup(function(e) {
       if ($('.autocomplete').val() == '') {
         $('#emsProductNumber').val('');
         $("#emsRstate").val('');
         $('#emsRelease').val('');
         $("#emsRelease").prop('disabled', false);
         $("#emsdynamic").hide();
       }
    });

Так как вы прячетесь на свободном месте, вы должны снова вызвать show на $("#emsdynamic").show(); // my assumption

...