繁体   English   中英

如何在jQuery中使用动态选择选项填充动态输入字段

[英]How to populate dynamic input field with dynamic select option in jquery

我正在尝试使用选定选项的值填充输入字段,两者都是动态加载的。 我能够加载选定的选项值,并且可以在选项更改时对其进行更新。 但是,如果有10个输入字段和10个选择选项标签,而我从10个标签中选择一个选项,则所有10个输入字段都显示相同的值。 每个输入字段都有10个选项。 我需要个别改变价值。

这是jQuery的功能,

$("#myselect").change(function () {
    $( "select option:selected" ).each(function() {
        $('.returnValue').val($( this ).text());
    });
});

我想在输入字段中插入单个产品数量。

我努力了两天,请帮忙。

<select id="myselect">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>

<input class="returnValue" type="text" value="">

使用$(this).parent().next('.returnValue').val($( this ).text()); 将值设置为下一个输入字段。

 $(".myselect").change(function () { $( "select option:selected" ).each(function() { $(this).parent().next('.returnValue').val($( this ).text()); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select class="myselect"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <input class="returnValue" type="text" value=""> <select class="myselect"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <input class="returnValue" type="text" value=""> <select class="myselect"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <input class="returnValue" type="text" value=""> 

您的问题是所有输入字段都使用相同的类,因此需要为每个输入字段设置不同的id

这是一个小矮人

您可以通过多种方式解决您的问题:

如果选择和输入字段是一个接一个的,则可以使用:

$(this).next('.returnValue').val($( this ).val());

另一种方法可以基于为每个选择添加一个新属性,例如:

input-field="newlass1"

因此,以链接选择和输入字段的方式将新类添加到相应的输入字段。

在这种情况下,您可以执行以下操作:

$('input.' + $(this).attr('input-field')).val($( this ).val());

片段:

 $("[id^=myselect]").change(function () { //$(this).next('.returnValue').val($( this ).val()); $('input.' + $(this).attr('input-field')).val($( this ).val()); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <select id="myselect1" input-field="newlass1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <input class="returnValue newlass1" type="text" value=""><br> <select id="myselect2" input-field="newlass2"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <input class="returnValue newlass2" type="text" value=""><br> <select id="myselect3" input-field="newlass3"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <input class="returnValue newlass3" type="text" value=""><br> <select id="myselect4" input-field="newlass4"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <input class="returnValue newlass4" type="text" value=""> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM