我正在尝试在 fieldset 标记中获取许多 输入 字段的值。但 $(this).val()或 $(this).attr('value')返回字段的旧值而不是更新的新值由用户。以下是html代码:
<fieldset id="fieldset_id">
<div class="form-item">
<input type="text" input_id="1" value="aaa_1">
</div>
<div class="form-item">
<input type="text" input_id="2" value="aaa_2">
</div>
</fieldset>
及以下是用户更新输入字段并按“保存”按钮后执行的代码:
$('#fieldset_id').find("input").each(function(){
idsArray.push($(this).attr('input_id'));
newValues.push($(this).val());
});
现在,这是用例:
newValues 数组中的值为 aaa_1 且 aaa_2 而非 aaa_111 和 aaa_2
答案 0 :(得分:0)
在推送值之前,您需要清除数组。
写:
idsArray = newValues = [];
$('#fieldset_id').find("input").each(function(){
idsArray.push($(this).attr('input_id'));
newValues.push($(this).val());
});
答案 1 :(得分:0)
您的阵列未定义,
像这样定义,
var idsArray = [], newValues= [];
答案 2 :(得分:0)
试试这个
HTML
<form id="fieldset_id">
<div class="form-item">
<input type="text" input_id="1" value="aaa_1"/>
</div>
<div class="form-item">
<input type="text" input_id="2" value="aaa_2"/>
</div>
<button>Save</button>
</form>
脚本
$('button').on('click',function(){
var idsArray = [], newValues= [];
$('#fieldset_id').find("input").each(function(){
idsArray.push($(this).attr('input_id'));
newValues.push($(this).val());
console.log(idsArray, newValues)
});
});