Я пишу скрипт для контента для заполнения формы. Веб-сайт, на котором я пытаюсь сделать это, использует виджет jquery spinner для одного из значений. Используя консоль Chrome и вручную выполняя каждую команду, все это прекрасно работает. Однако, когда я пытаюсь запустить скрипт, я получаю эту ошибку:
Uncaught Error: cannot call methods on spinner prior to initialization; attempted to call method 'value'
at Function.error (jquery.js:253)
at HTMLInputElement.<anonymous> (jquery-ui.min.js:6)
at Function.each (jquery.js:370)
at jQuery.fn.init.each (jquery.js:137)
at jQuery.fn.init.t.fn.<computed> [as spinner] (jquery-ui.min.js:6)
at myScript.js:96
Первой моей мыслью было, что я вызываю метод слишком рано, но время ожидания не работает.
HTML:
<div class="spinbox">
<div class="title">...<div>
<div class="inputs" style="height: 49px;">
<input type="tel" id="input-ID" data-win-bind="disabled: AmountSpinnerEnabled Converters.not" aria-valuemin="0.5" aria-valuemax="4750" class="ui-spinner-input" autocomplete="off" role="spinbutton" aria-valuenow="100">
<button class="icon-plus ui-spinner-button ui-spinner-up ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button">...</button>
<button class="icon-minus ui-spinner-button ui-spinner-down ui-button ui-widget ui-state-default ui-button-text-only" tabindex="-1" role="button">...</button>
</div>
</div>
Код:
if(window.location.href == "website.com") {
$( window ).on('load', function(){
var x = 100
var y = 200
document.getElementsByClassName("dropdown")[1].click();
setTimeout(function () {
console.log("set amount")
$("#input-ID").spinner("value", x);
setTimeout(function () {
document.getElementById("checkbox").click()
}, 2000);
}, 2000);
}
}
Я работал над этим, выбирая элементыи нажимая кнопки / ввод значений в консоли Chrome, а затем добавляя команду в мой скрипт. Это работало хорошо, пока я не дошел до этой точки. У меня сложилось впечатление, что при $( window ).on("load")
спиннер уже был бы инициализирован. Когда спиннер инициализируется, чтобы я мог установить для него определенное значение?
Редактировать: Я могу выполнить команду $("#input-ID").spinner("value", x);
вручную, прежде чем скрипт сможет это сделатьи работает нормально. Есть ли какой-то способ, которым мой сценарий не может достичь инициализированного счетчика, но обычная консоль Chrome может?