javascript - 如何使用jQuery根据点击表列表更改选择下拉值?
问题描述
我有一个列表,其中包含一些属性数据,如letid
, industrysize
, industrytypeid
。而且我也有多个选择下拉菜单。
我想要的是,当我单击列表中的某个项目时,下拉列表将根据列表中的值发生变化。我已经制作了如下的javascript。但还是不行。谁能帮我?
$(document).ready(function(){
$('.table-autocomplete td').click(function () {
$("#select-ac").click();
});
$(document).on('click', '.table-autocomplete-value', function () {
let letidValue = $(this).data('letid');
let industrySize = $(this).data('industrysize');
let indsutrytypeid = $(this).data('industrytypeid');
if(letidValue === null || letidValue === ''){
console.log(letidValue)
console.log(industrySize)
console.log(indsutrytypeid)
$("select[name='account-industrySize']").val($(this).data('industrysize')).change();
$("select[name='account-industrySize']").prop("disabled", false);
$("select[name='account-industryType-id']").val($(this).data('industrytypeid')).change();
$("select[name='account-industryType-id']").prop("disabled", false);
$("select[name='account-legalEntityType-id']").val($(this).data('letid')).change();
$("select[name='account-legalEntityType-id']").prop("disabled", false);
}else{
console.log(letidValue)
console.log(industrySize)
console.log(indsutrytypeid)
$("select[name='account-industrySize']").val($(this).data('industrysize')).change();
$("select[name='account-industrySize']").prop("disabled", true);
$("select[name='account-industryType-id']").val($(this).data('industrytypeid')).change();
$("select[name='account-industryType-id']").prop("disabled", true);
$("select[name='account-legalEntityType-id']").val($(this).data('letid')).change();
$("select[name='account-legalEntityType-id']").prop("disabled", true);
}
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="select-ac"></div>
<table class="table-autocomplete" id="racbe5de91fbfd94c89be790f1408638751">
<tbody>
<tr>
<td class="table-autocomplete-value" tabindex="22" data-key="22" data-industrysize="[10,100)" data-industrytypeid="13" data-letid="2">ABADI JAYA PACKING</td>
</tr>
<tr>
<td class="table-autocomplete-value" tabindex="324" data-key="324" data-industrysize="[101,300)" data-industrytypeid="11" data-letid="6">ABADI JAYA PACKING</td>
</tr>
<tr>
<td class="table-autocomplete-value" tabindex="23" data-key="23" data-industrysize="" data-industrytypeid="" data-letid="">ACER STORE</td>
</tr>
<tr>
<td class="table-autocomplete-value" tabindex="327" data-key="327" data-industrysize="[10,100)" data-industrytypeid="13" data-letid="2">ACER STORE</td>
</tr>
<tr>
<td class="table-autocomplete-value" tabindex="24" data-key="24" data-industrysize="[2,10)" data-industrytypeid="13" data-letid="5">ADIJAYA BUANA PERKASA</td>
</tr>
</tbody>
</table>
<select name="account-legalEntityType-id" id="legal-entity-type" onchange="this.style.color='black';" style="color: black;">
<option value="" style="display:none">Jenis Perusahaan</option>
<option value="11" style="color: black;">Lainnya</option>
<option value="1" style="color: black;">PT</option>
<option value="2" style="color: black;">CV</option>
<option value="3" style="color: black;">Firma</option>
<option value="4" style="color: black;">PD</option>
<option value="5" style="color: black;">UD</option>
<option value="6" style="color: black;">BUMN</option>
<option value="7" style="color: black;">BUMD</option>
<option value="8" style="color: black;">Lembaga</option>
<option value="9" style="color: black;">Yayasan</option>
<option value="10" style="color: black;">Koperasi</option>
</select>
<select name="account-industryType-id" id="company-classified" onchange="this.style.color='black';" style="color: black;">
<option value="" style="display:none">Klasifikasi Perusahaan</option>
<option value="11" style="color: black;">Pertambangan</option>
<option value="12" style="color: black;">Trading</option>
<option value="13" style="color: black;">Properti</option>
<option value="14" style="color: black;">Pertanian</option>
<option value="15" style="color: black;">Pertenakan</option>
<option value="16" style="color: black;">Transportasi & Gudang</option>
<option value="17" style="color: black;">Lainnya</option>
<option value="1" style="color: black;">Jasa</option>
<option value="2" style="color: black;">Kesehatan</option>
<option value="3" style="color: black;">Kesenian & Hiburan</option>
<option value="4" style="color: black;">Keuangan & Asuransi</option>
<option value="5" style="color: black;">Konstruksi</option>
<option value="6" style="color: black;">Manufaktur & Perakitan</option>
<option value="7" style="color: black;">Pemerintahan, Badan & BUMN</option>
<option value="8" style="color: black;">Pendidikan</option>
<option value="9" style="color: black;">Pengelolaan Limbah</option>
<option value="10" style="color: black;">Hotel, Restoran, Cafe</option>
</select>
<select name="account-industrySize" id="company-classified" onchange="this.style.color='black';" style="color: black;">
<option value="" style="display:none">Jumlah Karyawan</option>
<option value="[2,10)" style="color: black;">2-9</option>
<option value="[10,100)" style="color: black;">10-99</option>
<option value="[101,300)" style="color: black;">100-299</option>
<option value="[300,)" style="color: black;">>300</option>
</select>
解决方案
检索“data*”属性时引用了错误的 jQuery 选择器
您的点击功能应如下所示:
$(document).on('click', '.table-autocomplete-value', function () {
let letidValue = $(this).data('letid');
let industrySize = $(this).data('industrysize');
let indsutrytypeid = $(this).data('industrytypeid');
if(letidValue === null || letidValue === ''){
console.log(letidValue)
console.log(industrySize)
console.log(indsutrytypeid)
$("select[name='account-industrySize']").val($(this).data('industrysize')).change();
$("select[name='account-industrySize']").prop("disabled", false);
$("select[name='account-industryType-id']").val($(this).data('industrytypeid')).change();
$("select[name='account-industryType-id']").prop("disabled", false);
$("select[name='account-legalEntityType-id']").val($(this).data('letid')).change();
$("select[name='account-legalEntityType-id']").prop("disabled", false);
}else{
console.log(letidValue)
console.log(industrySize)
console.log(indsutrytypeid)
$("select[name='account-industrySize']").val($(this).data('industrysize')).change();
$("select[name='account-industrySize']").prop("disabled", true);
$("select[name='account-industryType-id']").val($(this).data('industrytypeid')).change();
$("select[name='account-industryType-id']").prop("disabled", true);
$("select[name='account-legalEntityType-id']").val($(this).data('letid')).change();
$("select[name='account-legalEntityType-id']").prop("disabled", true);
}
})
注意我删除了$('#select-ac').data
,我把$(this).data
推荐阅读
- java - 如何根据文本所在的背景更改文本的前景色?
- shopify - shopify代码中的百分比计算错误
- unity3d - 如何在不改变纵横比的情况下统一缩放某些东西?
- laravel - 约束急切负载返回所有项目 - 正确的关系数据以匹配查询,但所有其他项目在关系中为空
- python - 如何修复错误:解包的值太多(预期 3)
- vba - 使用 VBA 将文件添加到 MS-Project 任务注释字段
- javascript - 如何手动冻结页面,页面生命周期 API
- arrays - 在 React 中验证字符串数组
- javascript - 在 SPA 应用上加载内容时添加平滑过渡
- woocommerce - WooCommerce - 添加或删除优惠券时刷新日期选择器