【发布时间】:2021-05-25 06:08:53
【问题描述】:
注意:下面提供了一个可行的解决方案;但是,Array.map... 在 IE 中不起作用。我需要一个同样适用于 IE 的解决方案。
原帖:
我有一个动态输入组(可以添加和删除组)。
每个输入组都有一个状态选择和一个文本框。
我想遍历 keyup/change 事件的输入并将值存储在键值对中,如下所示:
licGroupObj = [
{“licState”:“WA”,“licNum”:“111”},
{ "licState": "OR", "licNum": "222" },
{ "licState": "CA", "licNum": "333" }]
我尝试了以下方法,但它不起作用。我需要在某处添加一个循环。
$('body').on('change keyup', '.license_state, .license_input', function () {
var licGroupObj = {};
licGroupObj = $('.license_group').map(function () {
var licState = $('.license_state').val();
var licNum = $('.license_input').val();
return { licState, licNum } ;
}).get();
$('#InputForLicenseObject').val('');
$('#InputForLicenseObject').val(JSON.stringify(licGroupObj));
});
fieldset {
border: 1px solid #222 !important;
border-radius: 0.25rem;
padding: 0.5rem 1rem 1rem 1rem !important;
}
legend {
position: absolute;
transform: translate(-2px, -20px);
background: #fff;
width: unset !important;
font-size: 0.85rem !important;
}
.form-select {
border-radius: 0 !important;
}
.license_group .btn {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js" integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.3.0/font/bootstrap-icons.css">
<main class="container py-3">
<label>Store Input Values</label>
<input type="text" class="form-control" placeholder="License Object" aria-label="License Number" id="InputForLicenseObject" />
<fieldset id="buildlicenseform" class="my-3">
<legend>License Group</legend>
<div class="input-group my-3 license_group">
<span>
<select name="LicenseState" class="form-select license_state" aria-label="License State" required="">
<option selected="">State</option>
<option value="AL">AL</option>
<option value="AK">AK</option>
<option value="AZ">AZ</option>
<option value="AR">AR</option>
<option value="CA">CA</option>
<option value="CO">CO</option>
<option value="CT">CT</option>
<option value="DE">DE</option>
<option value="DC">DC</option>
<option value="FL">FL</option>
<option value="GA">GA</option>
<option value="HI">HI</option>
<option value="ID">ID</option>
<option value="IL">IL</option>
<option value="IN">IN</option>
<option value="IA">IA</option>
<option value="KS">KS</option>
<option value="KY">KY</option>
<option value="LA">LA</option>
<option value="ME">ME</option>
<option value="MD">MD</option>
<option value="MA">MA</option>
<option value="MI">MI</option>
<option value="MN">MN</option>
<option value="MS">MS</option>
<option value="MO">MO</option>
<option value="MT">MT</option>
<option value="NE">NE</option>
<option value="NV">NV</option>
<option value="NH">NH</option>
<option value="NJ">NJ</option>
<option value="NM">NM</option>
<option value="NY">NY</option>
<option value="NC">NC</option>
<option value="ND">ND</option>
<option value="OH">OH</option>
<option value="OK">OK</option>
<option value="OR">OR</option>
<option value="PA">PA</option>
<option value="RI">RI</option>
<option value="SC">SC</option>
<option value="SD">SD</option>
<option value="TN">TN</option>
<option value="TX">TX</option>
<option value="UT">UT</option>
<option value="VT">VT</option>
<option value="VA">VA</option>
<option value="WA">WA</option>
<option value="WV">WV</option>
<option value="WI">WI</option>
<option value="WY">WY</option>
</select>
</span>
<input type="text" name="LicenseInput" class="form-control license_input" placeholder="License Number" aria-label="License Number">
<button class="btn btn-light border add_remove_license_button remove_license_button">
<i class="bi bi-dash-circle-fill"></i>
</button>
</div><div class="input-group my-3 license_group"><span><select name="LicenseState" class="form-select license_state" aria-label="License State"><option selected="">State</option><option value="AL">AL</option><option value="AK">AK</option><option value="AZ">AZ</option><option value="AR">AR</option><option value="CA">CA</option><option value="CO">CO</option><option value="CT">CT</option><option value="DE">DE</option><option value="DC">DC</option><option value="FL">FL</option><option value="GA">GA</option><option value="HI">HI</option><option value="ID">ID</option><option value="IL">IL</option><option value="IN">IN</option><option value="IA">IA</option><option value="KS">KS</option><option value="KY">KY</option><option value="LA">LA</option><option value="ME">ME</option><option value="MD">MD</option><option value="MA">MA</option><option value="MI">MI</option><option value="MN">MN</option><option value="MS">MS</option><option value="MO">MO</option><option value="MT">MT</option><option value="NE">NE</option><option value="NV">NV</option><option value="NH">NH</option><option value="NJ">NJ</option><option value="NM">NM</option><option value="NY">NY</option><option value="NC">NC</option><option value="ND">ND</option><option value="OH">OH</option><option value="OK">OK</option><option value="OR">OR</option><option value="PA">PA</option><option value="RI">RI</option><option value="SC">SC</option><option value="SD">SD</option><option value="TN">TN</option><option value="TX">TX</option><option value="UT">UT</option><option value="VT">VT</option><option value="VA">VA</option><option value="WA">WA</option><option value="WV">WV</option><option value="WI">WI</option><option value="WY">WY</option></select></span><input type="text" name="LicenseInput" class="form-control license_input" placeholder="License Number" aria-label="License Number"><button class="btn btn-light border add_remove_license_button remove_license_button"><i class="bi bi-dash-circle-fill"></i></button></div><div class="input-group my-3 license_group"><span><select name="LicenseState" class="form-select license_state" aria-label="License State"><option selected="">State</option><option value="AL">AL</option><option value="AK">AK</option><option value="AZ">AZ</option><option value="AR">AR</option><option value="CA">CA</option><option value="CO">CO</option><option value="CT">CT</option><option value="DE">DE</option><option value="DC">DC</option><option value="FL">FL</option><option value="GA">GA</option><option value="HI">HI</option><option value="ID">ID</option><option value="IL">IL</option><option value="IN">IN</option><option value="IA">IA</option><option value="KS">KS</option><option value="KY">KY</option><option value="LA">LA</option><option value="ME">ME</option><option value="MD">MD</option><option value="MA">MA</option><option value="MI">MI</option><option value="MN">MN</option><option value="MS">MS</option><option value="MO">MO</option><option value="MT">MT</option><option value="NE">NE</option><option value="NV">NV</option><option value="NH">NH</option><option value="NJ">NJ</option><option value="NM">NM</option><option value="NY">NY</option><option value="NC">NC</option><option value="ND">ND</option><option value="OH">OH</option><option value="OK">OK</option><option value="OR">OR</option><option value="PA">PA</option><option value="RI">RI</option><option value="SC">SC</option><option value="SD">SD</option><option value="TN">TN</option><option value="TX">TX</option><option value="UT">UT</option><option value="VT">VT</option><option value="VA">VA</option><option value="WA">WA</option><option value="WV">WV</option><option value="WI">WI</option><option value="WY">WY</option></select></span><input type="text" name="LicenseInput" class="form-control license_input" placeholder="License Number" aria-label="License Number"><button class="btn btn-light border add_remove_license_button remove_license_button"><i class="bi bi-dash-circle-fill"></i></button></div>
</fieldset>
</main>
【问题讨论】: