Я пытаюсь заменить некоторый текст в поле ввода с помощью JS, но модель представления переопределяет мои команды каждый раз. Это HTML, который я начинаю с:
<td class="new-variants-table__cell" define="{ editVariantPrice: new Shopify.EditVariantPrice(this) }" context="editVariantPrice" style="height: auto;">
<input type="hidden" name="product[variants][][price]" id="product_variants__price" value="25.00" bind="price" data-dirty-trigger="true">
<input class="mock-edit-on-hover tr js-no-dirty js-variant-price variant-table-input--numeric" bind-event-focus="onFocus(this)" bind-event-blur="onBlur(this)" bind-event-input="onInput(this)">
</td>
Я запускаю этот JS:
jQuery('#product_variants__price').siblings().removeAttr('bind-event-focus');
jQuery('#product_variants__price').siblings().removeAttr('bind-event-input');
jQuery('#product_variants__price').siblings().removeAttr('bind-event-blur');
jQuery('#product_variants__price').siblings().focus()
jQuery('#product_variants__price').siblings().val("34.00");
jQuery('#product_variants__price').val("34.00");
И я остался со следующим HTML:
<td class="new-variants-table__cell" define="{ editVariantPrice: new Shopify.EditVariantPrice(this) }" context="editVariantPrice" style="height: auto;">
<input type="hidden" name="product[variants][][price]" id="product_variants__price" value="34.00" bind="price" data-dirty-trigger="true">
<input class="mock-edit-on-hover tr js-no-dirty js-variant-price variant-table-input--numeric">
</td>
Проблема заключается в том, что каждый раз, когда я нажимаю поле ввода, значение возвращается к тому, что было при загрузке страницы.
Я также попытался запустить команду в родительском td вместе с моим изменением значения, чтобы имитировать редактирование варианта и предотвращать по умолчанию без успеха:
jQuery('#product_variants__price').siblings().bind('input', function (e) {
e.preventDefault();
return false;
});
jQuery('#product_variants__price').siblings().bind('focus', function (e) {
e.preventDefault();
return false;
});
jQuery('#product_variants__price').siblings().focus()
jQuery('#product_variants__price').siblings().val("£34.00");
jQuery('#product_variants__price').val("£34.00");
jQuery('#product_variants__price').siblings().keydown()
Родительская функция td:
new Shopify.EditVariantPrice(jQuery('#product_variants__price').parent())
Итак, как я могу успешно изменить это значение на входах, а также обновить модель вида "Просмотр"?
Вы можете попробовать это для себя, перейдя сюда:
https://jebus333.myshopify.com/admin/products/2521183043
Войти [email protected] магазин паролей1
EDIT: я попытался найти модель просмотра на странице, но без успеха. Кроме того, нет сетевых вызовов при редактировании значений в полях ввода, что заставляет меня думать, что значения отбрасываются где-то на странице.