更改 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>    
@component('comptxt')
@endcomponent
   
@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");
}
});
亲爱的,这对你有用。
在 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>    
@component('comptxt')
@endcomponent
   
@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");
}
});
亲爱的,这对你有用。