当每个下拉列表动态创建ID时,jquery选择选项数据和值[关闭]

Posted

技术标签:

【中文标题】当每个下拉列表动态创建ID时,jquery选择选项数据和值[关闭]【英文标题】:jquery to select option data and value when each dropdown has dynamically created id [closed] 【发布时间】:2021-03-27 05:32:12 【问题描述】:

我需要根据下拉选择自动填充表单。我有多个带有动态 ID 的下拉部分。如何使用 jquery 来定位动态 id 以获取选项值和数据属性来填充输入文本区域。我可以获取预定义 id 的值,但无法触发未知 id 的 jquery。

@foreach(var number in totalNumber)

  <div class="col-12 col-md-12 col-lg-8 ml-0 pr-1">
 
   <select  name="@number"  class="form-control mb-1">

       <option>Select from the dropdown</option>
         
        @foreach(var product in @Model.ProductList)
          
            <option value="@product.productName"
                    data-pd = "@product.productDescription"
                    data-model = "@product.productModelNo">
                    @product.productName</option>
        
            
  </select>

  <input type="hidden" class="form-control mb-1" rows="1" placeholder="Product Name"/>

  <input type="hidden"  class="form-control mb-1" rows="1" placeholder="Product description"/>
    
  <input type="hidden" class="form-control mb-1" rows="1" placeholder="Product Model Number"/>
  
 </div>

我需要根据所做的下拉选择在我的输入字段中获取产品名称、产品描述和产品型号。

【问题讨论】:

【参考方案1】:

首先将一些类名添加到隐藏字段中,以便 JQuery 轻松识别它们。

例如:

<input type="hidden" class="product-name form-control mb-1" rows="1" placeholder="Product Name" />
<input type="hidden" class="product-description form-control mb-1" rows="1" placeholder="Product description" />
<input type="hidden" class="product-model-no form-control mb-1" rows="1" placeholder="Product Model Number" />

然后在更改下拉列表时设置隐藏值,使用change() 方法。您可以使用parent() & find() 找到隐藏字段。

举个例子:

$('select').on('change', function () 
    var productName = this.value;
    var productDescription = $(this).find('option:selected').data("pd");
    var productModelNo = $(this).find('option:selected').data("model");
    $(this).parent().find(".product-name").val(productName);
    $(this).parent().find(".product-description").val(productDescription);
    $(this).parent().find(".product-model-no").val(productModelNo);
);

这是一个工作示例https://jsfiddle.net/54equvb0/2/

【讨论】:

我能够同时获得选定的值和数据值,但我无法使用最接近的方式为我的输入设置值。 我已经更新了答案。 parent & find 应该这样做

以上是关于当每个下拉列表动态创建ID时,jquery选择选项数据和值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从动态填充的下拉列表中动态选择一个选项

在 jQuery 自动完成下拉列表中选择选项时失去焦点

jquery在下拉菜单中找到所选项目的值

根据下拉选择创建动态下拉选项 - 卡住

如何修改此 jQuery 以在下拉列表中动态显示和隐藏相关选择选项?

每当我更改第一个下拉列表中的选项时,需要 jquery 将第二个下拉列表的默认选项更改为“选择”