JQuery - 更新数字输入字段中的值

时间:2015-12-15 08:10:17

标签: jquery

目前,我在普通数字输入字段中的值属性没有正确的值。

这是我输入字段的代码:

<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。感谢大家的建议。

0 个答案:

没有答案