更改 select 框值不能应用于使用 ajax 和 jquery 的标签

Changing select box value cannot applied in lables using ajax and jquery

在 Laravel 中,我使用 jquery 动态添加了多个 select 框和标签。 Select 框值来自数据库。根据 select 框值使用 Ajax 标签的值(也来自数据库)必须动态更改。它有效,但所有标签值都在变化。我只想将值应用于特定的标签。 在这里我必须附上我的代码。提前致谢。

Ajax 用于更改 select 框值并将结果应用于标签的代码

$(document).on('change','.mySelect', function() {
     alert(this.value);
    var unit=this.value;

   var me=$(this);
$.ajax({
  type: "get",
  dataType:"json",
  url: "{{URL('newuphist/findunit')}}",
  data:{unit:unit},
  success: function(data){

   me.closest('.mySelect').find("#unitlbl").html(data['unit']);

  },

  error:function(){
   me.closest('.mySelect').find("#unitlbl").html("Error");

  }



});

HTML代码

    <div class="select">

     <select  class="mySelect" name="cat[]" >


        @foreach($data as $item)
           @component('compnew')
              @slot('opt')
               {{$item->diseaseName}}

               @endslot
            @endcomponent

        @endforeach

     </select> &nbsp &nbsp

    @component('comptxt')

    @endcomponent 
    &nbsp &nbsp

      @if(isset($res))

         <label   id="unitlbl" >{{$res}}</label>
         @else
            <label   id="unitlbl"></label>


    @endif     

  <br/>
</div>
</div>

试试这个:

$(document).on('change','select', function() {
    var lbl = $(this).parents('div.select').find('#unitlbl');
    /* TO DO */
});

并使用 lbl.html()lbl.text() 更新文本。

您必须在同一个 select 框中添加标签 div .

 e.g
   <div class="select"> 
    <select class="mySelect">
         //code
    </select>
    <label id="myLabel"></label>
   </div>

jquery 类似

的代码
 $(document).on('change','.mySelect', function() {
    alert(this.value);
   var unit=this.value;

var me = $(this); // add this 

$.ajax({
  type: "get",
  dataType:"json",
  url: "{{URL('newuphist/findunit')}}",
  data:{unit:unit},
  success: function(data){
        me.closest('.select').find("#myLabel").html(data['unit']);

  },

  error:function(){

$(".unitlbl").html("not get");   

  }

});

亲爱的,这对你有用。