设置下拉菜单的文本值会保持重置状态

时间:2019-08-19 20:47:42

标签: jquery css

我在页面中声明了以下HTML:

<select class="js-basket-qty basketProduct__quantity basketProduct__dropdown">
  <option value="1">1</option> …
</select>

选项值转到10。更改值时,select语句上的类触发许多事件。
这些事件都按预期工作,但没有发生的是所选内容中的文本没有保留。


例如默认情况下,select中设置为1。然后,从下拉列表中选择3。
被触发的事件使用了3个get,一瞬间,我在选择器文本框中看到3。但是,到完成时,它会再次显示1而不是按住3。

因此,在事件结束时,我尝试使用$('.basketProduct__dropdown').val(qty.toString());

之类的值将其设置为所选值。

在我的函数顶部,我有:

var basketItem = getBasketItem($(event.currentTarget)),
    qty = parseInt(basketItem.find('.js-basket-qty').val(),10);
……
….
ajaxUpdateBasket({ 
….}).done(render);

$('.basketProduct__dropdown').val(qty.toString());

1 个答案:

答案 0 :(得分:0)

您的ajaxUpdateBasket方法可能是asynchronous,因此您需要在select函数的末尾设置render值。像这样:

    var basketItem = getBasketItem($(event.currentTarget)),
        qty = parseInt(basketItem.find('.js-basket-qty').val(),10);
    ……
    ….
    ajaxUpdateBasket({ 
    ….}).done(render);

    function render(){
        ...some stuff
        $('.basketProduct__dropdown').val(qty.toString());
    }

请注意,您需要确保qty内部可以访问render()