目前,我在普通数字输入字段中的值属性没有正确的值。
这是我输入字段的代码:
<input class="form-control input-sm" type="number" min="250" step="250" pattern="\d*" name="amount" value="250" size="5" autocomplete="off" id="amount_SOMEGenericStuff">
所以当我在jQuery中选择这个字段时:
$('#amount_SOMEGenericStuff')
它清楚地返回完整字段 - 但值不正确。如您所见,“值属性值”为“250”。但我已进入“500”。所以当我这样做时:
$('#amount_SOMEGenericStuff').val();
它返回500 - 而不是250.这没关系,但我只是想知道,“值属性值”与$('#amount_SOMEGenericStuff').val()
有何不同。
输入字段上的ID是唯一的 - 因此此站点上没有其他元素,名称。此外,当我使用$('#amount_SOMEGenericStuff').val(1000)
更新值,并按照之前的方式选择它时,它也会将“1000”作为值。通过选择整个元素,“值属性值”仍然返回“250” - 这怎么可能呢?
编辑:
通过使用$("#amount_SOMEGenericcStuff").attr('value', 1000);
,正确的值显示在元素属性值中,但不会显示在输入字段值内。它是空的。
因此,我在此网站上有多个数量的输入字段,并且所有输入字段都具有相同的类inputAmount
。
通过使用$('.inputAmount').attr('value', 1000);
,它将所有输入字段值(也是属性值)更新为1000 - 但所选字段在字段内仍为空。属性值已正确更新。这很奇怪..
再一次编辑(解决方案):
我真的不知道为什么,但是当我在setTimeout函数中稍微延迟调用$('.inputAmount').attr('value', 1000);
(如50ms)时,它就像一个魅力。问题是,我正在使用触发功能,这需要一点点,直到完成。但我想知道,因为当我在触发功能结束时更新值时,它也不会更新。我可以使用回调来避免延迟/ setTimeout。感谢大家的建议。