so I have a simple macro that fills out a webform i use lots of "getElementById" to find the right field and insert values. It works fine except for these "spinners" The number is entered normally, and when I manually enter the number there is no problem. However if I let the macro populate the number, then it appears fine, but it seems the code doesn't read it. If I try to submit the form I get an error that the quantities are zero. At that point I need to manually retype the numbers and it works fine
<div class="tab-pane fade active in" id="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner" role="tabpanel" data-bind="attr: { id: pg.Id }, css: { 'active in': $index() === 0 }">
<div class="row product-header">
<div class="col-xs-4">Product</div>
<div class="col-xs-2">Price (exc. GST)</div>
<div class="col-xs-2">GST</div>
<div class="col-xs-2">Quantity</div>
<div class="col-xs-2">Subtotal (inc. GST)</div>
</div>
<!-- ko foreach: { data: ProductItems, as: 'pi' } -->
<!-- ko if: pg.Id === pi.Group() -->
<div class="row product-row">
<div class="col-xs-4 col-md-4 col-lg-4" id="7e1fe9a5-428a-eb11-b1ac-000d3a6b2af4" data-bind="attr: { id: pi.Id }"><i title="" class="fa fa-info-circle info-desc" aria-hidden="true" data-original-title="Description" data-toggle="popover" data-content="4am-8am or 4pm-8pm Only. Lunch (Crib Replacement) is Chargeable. 1 Burger Pattie and 2 Sausages Plus Onion, Tomato Slices, Lettuce, Bread, Butter, Mayonnaise, Tomato Sauce, BBQ Sauce, Salt & Pepper, Plates, Cutlery, Cooking Utensils, Serviettes. "
data-trigger="hover" data-placement="top" data-bind="attr: { 'data-content': pi.Description }"></i>
<!-- ko text: pi.Name() -->Breakfast or Dinner Meal Replacement BBQ Pack - Burger Pattie (Click i for Details)
<!-- /ko -->
</div>
<div class="col-xs-2" data-bind="{ text: pi.Price }">0.00</div>
<div class="col-xs-2" data-bind="{ text: pi.GST }">0.00</div>
<div class="col-xs-2 col-md-2 col-lg-2"><span class="ui-spinner ui-widget ui-widget-content ui-corner-all qty-spinner"><input name="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_0" class="spinner qty ui-spinner-input" id="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_0" role="spinbutton" aria-valuenow="0" aria-valuemin="0" onclick="this.setSelectionRange(0, this.value.length)" data-bind="attr: { id: pg.Id + '_' + $index(), name: pg.Id + '_' + $index() }, value: pi.Quantity, valueUpdate: 'keyup', event: { spinstop: QuantityChange, spinstart: QuantityChange }" autocomplete="off"><a tabindex="-1" class="ui-spinner-button ui-spinner-up ui-corner-tr"><span class="ui-icon ui-icon-triangle-1-n">▲</span></a>
<a
tabindex="-1" class="ui-spinner-button ui-spinner-down ui-corner-br"><span class="ui-icon ui-icon-triangle-1-s">▼</span></a>
</span>
</div>
<div class="col-xs-2" data-bind="{ text: pi.Subtotal }">0.00</div>
</div>
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<div class="row product-row">
<div class="col-xs-4 col-md-4 col-lg-4" id="8c1fe9a5-428a-eb11-b1ac-000d3a6b2af4" data-bind="attr: { id: pi.Id }"><i title="" class="fa fa-info-circle info-desc" aria-hidden="true" data-original-title="Description" data-toggle="popover" data-content="4am-8am or 4pm-8pm Only. Lunch (Crib Replacement) is Chargeable. 1 Chicken Breast and 2 Sausages. Plus Onion, Tomato Slices, Lettuce, Bread, Butter, Mayonnaise, Tomato Sauce, BBQ Sauce, Salt & Pepper, Plates, Cutlery, Cooking Utensils, Serviettes. "
data-trigger="hover" data-placement="top" data-bind="attr: { 'data-content': pi.Description }"></i>
<!-- ko text: pi.Name() -->Breakfast or Dinner Meal Replacement BBQ Pack - Chicken (Click i for Details)
<!-- /ko -->
</div>
<div class="col-xs-2" data-bind="{ text: pi.Price }">0.00</div>
<div class="col-xs-2" data-bind="{ text: pi.GST }">0.00</div>
<div class="col-xs-2 col-md-2 col-lg-2"><span class="ui-spinner ui-widget ui-widget-content ui-corner-all qty-spinner"><input name="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_1" class="spinner qty ui-spinner-input valid" id="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_1" role="spinbutton" aria-invalid="false" aria-valuenow="2" aria-valuemin="0" onclick="this.setSelectionRange(0, this.value.length)" data-bind="attr: { id: pg.Id + '_' + $index(), name: pg.Id + '_' + $index() }, value: pi.Quantity, valueUpdate: 'keyup', event: { spinstop: QuantityChange, spinstart: QuantityChange }" autocomplete="off"><a tabindex="-1" class="ui-spinner-button ui-spinner-up ui-corner-tr"><span class="ui-icon ui-icon-triangle-1-n">▲</span></a>
<a
tabindex="-1" class="ui-spinner-button ui-spinner-down ui-corner-br"><span class="ui-icon ui-icon-triangle-1-s">▼</span></a>
</span>
</div>
<div class="col-xs-2" data-bind="{ text: pi.Subtotal }">0.00</div>
</div>
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<div class="row product-row">
<div class="col-xs-4 col-md-4 col-lg-4" id="ee1fe9a5-428a-eb11-b1ac-000d3a6b2af4" data-bind="attr: { id: pi.Id }"><i title="" class="fa fa-info-circle info-desc" aria-hidden="true" data-original-title="Description" data-toggle="popover" data-content="4am-8am or 4pm-8pm Only. Lunch (Crib Replacement) is Chargeable. 1 Fish Fillet and 2 Sausages Plus Onion, Tomato Slices, Lettuce, Bread, Butter, Mayonnaise, Tomato Sauce, BBQ Sauce, Salt & Pepper, Plates, Cutlery, Cooking Utensils, Serviettes. "
data-trigger="hover" data-placement="top" data-bind="attr: { 'data-content': pi.Description }"></i>
<!-- ko text: pi.Name() -->Breakfast or Dinner Meal Replacement BBQ Pack - Fish (Click i for Details)
<!-- /ko -->
</div>
<div class="col-xs-2" data-bind="{ text: pi.Price }">0.00</div>
<div class="col-xs-2" data-bind="{ text: pi.GST }">0.00</div>
<div class="col-xs-2 col-md-2 col-lg-2"><span class="ui-spinner ui-widget ui-widget-content ui-corner-all qty-spinner"><input name="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_2" class="spinner qty ui-spinner-input" id="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_2" role="spinbutton" aria-valuenow="0" aria-valuemin="0" onclick="this.setSelectionRange(0, this.value.length)" data-bind="attr: { id: pg.Id + '_' + $index(), name: pg.Id + '_' + $index() }, value: pi.Quantity, valueUpdate: 'keyup', event: { spinstop: QuantityChange, spinstart: QuantityChange }" autocomplete="off"><a tabindex="-1" class="ui-spinner-button ui-spinner-up ui-corner-tr"><span class="ui-icon ui-icon-triangle-1-n">▲</span></a>
<a
tabindex="-1" class="ui-spinner-button ui-spinner-down ui-corner-br"><span class="ui-icon ui-icon-triangle-1-s">▼</span></a>
</span>
</div>
<div class="col-xs-2" data-bind="{ text: pi.Subtotal }">0.00</div>
</div>
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<div class="row product-row">
<div class="col-xs-4 col-md-4 col-lg-4" id="c620e9a5-428a-eb11-b1ac-000d3a6b2af4" data-bind="attr: { id: pi.Id }"><i title="" class="fa fa-info-circle info-desc" aria-hidden="true" data-original-title="Description" data-toggle="popover" data-content="4am-8am or 4pm-8pm Only. Lunch (Crib Replacement) is Chargeable. 1 Sandwich Steak and 2 Sausages Plus Onion, Tomato Slices, Lettuce, Bread, Butter, Mayonnaise, Tomato Sauce, BBQ Sauce, Salt & Pepper, Plates, Cutlery, Cooking Utensils, Serviettes."
data-trigger="hover" data-placement="top" data-bind="attr: { 'data-content': pi.Description }"></i>
<!-- ko text: pi.Name() -->Breakfast or Dinner Meal Replacement BBQ Pack - Sandwich Steak (Click i for Details)
<!-- /ko -->
</div>
<div class="col-xs-2" data-bind="{ text: pi.Price }">0.00</div>
<div class="col-xs-2" data-bind="{ text: pi.GST }">0.00</div>
<div class="col-xs-2 col-md-2 col-lg-2"><span class="ui-spinner ui-widget ui-widget-content ui-corner-all qty-spinner"><input name="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_3" class="spinner qty ui-spinner-input" id="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_3" role="spinbutton" aria-valuenow="0" aria-valuemin="0" onclick="this.setSelectionRange(0, this.value.length)" data-bind="attr: { id: pg.Id + '_' + $index(), name: pg.Id + '_' + $index() }, value: pi.Quantity, valueUpdate: 'keyup', event: { spinstop: QuantityChange, spinstart: QuantityChange }" autocomplete="off"><a tabindex="-1" class="ui-spinner-button ui-spinner-up ui-corner-tr"><span class="ui-icon ui-icon-triangle-1-n">▲</span></a>
<a
tabindex="-1" class="ui-spinner-button ui-spinner-down ui-corner-br"><span class="ui-icon ui-icon-triangle-1-s">▼</span></a>
</span>
</div>
<div class="col-xs-2" data-bind="{ text: pi.Subtotal }">0.00</div>
</div>
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<div class="row product-row">
<div class="col-xs-4 col-md-4 col-lg-4" id="4a21e9a5-428a-eb11-b1ac-000d3a6b2af4" data-bind="attr: { id: pi.Id }"><i title="" class="fa fa-info-circle info-desc" aria-hidden="true" data-original-title="Description" data-toggle="popover" data-content="4am-8am or 4pm-8pm Only. Lunch (Crib Replacement) is Chargeable. 1 Vegetarian Item Plus Onion, Tomato Slices, Lettuce, Bread, Butter, Mayonnaise, Tomato Sauce, BBQ Sauce, Salt & Pepper, Plates, Cutlery, Cooking Utensils, Serviettes. "
data-trigger="hover" data-placement="top" data-bind="attr: { 'data-content': pi.Description }"></i>
<!-- ko text: pi.Name() -->Breakfast or Dinner Meal Replacement BBQ Pack - Vegetarian (Click i for Details)
<!-- /ko -->
</div>
<div class="col-xs-2" data-bind="{ text: pi.Price }">0.00</div>
<div class="col-xs-2" data-bind="{ text: pi.GST }">0.00</div>
<div class="col-xs-2 col-md-2 col-lg-2"><span class="ui-spinner ui-widget ui-widget-content ui-corner-all qty-spinner"><input name="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_4" class="spinner qty ui-spinner-input" id="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_4" role="spinbutton" aria-valuenow="0" aria-valuemin="0" onclick="this.setSelectionRange(0, this.value.length)" data-bind="attr: { id: pg.Id + '_' + $index(), name: pg.Id + '_' + $index() }, value: pi.Quantity, valueUpdate: 'keyup', event: { spinstop: QuantityChange, spinstart: QuantityChange }" autocomplete="off"><a tabindex="-1" class="ui-spinner-button ui-spinner-up ui-corner-tr"><span class="ui-icon ui-icon-triangle-1-n">▲</span></a>
<a
tabindex="-1" class="ui-spinner-button ui-spinner-down ui-corner-br"><span class="ui-icon ui-icon-triangle-1-s">▼</span></a>
</span>
</div>
<div class="col-xs-2" data-bind="{ text: pi.Subtotal }">0.00</div>
</div>
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<div class="row product-row">
<div class="col-xs-4 col-md-4 col-lg-4" id="bc20e9a5-428a-eb11-b1ac-000d3a6b2af4" data-bind="attr: { id: pi.Id }"><i title="" class="fa fa-info-circle info-desc" aria-hidden="true" data-original-title="Description" data-toggle="popover" data-content="4am-8am or 4pm-8pm Only. Lunch (Crib Replacement) is Chargeable. 1 Rump Steak and 2 Sausages Plus Onion, Tomato Slices, Lettuce, Bread, Butter, Mayonnaise, Tomato Sauce, BBQ Sauce, Salt & Pepper, Plates, Cutlery, Cooking Utensils, Serviettes. "
data-trigger="hover" data-placement="top" data-bind="attr: { 'data-content': pi.Description }"></i>
<!-- ko text: pi.Name() -->Breakfast or Dinner Replacement BBQ Pack - Rump Steak (Click i for Details)
<!-- /ko -->
</div>
<div class="col-xs-2" data-bind="{ text: pi.Price }">0.00</div>
<div class="col-xs-2" data-bind="{ text: pi.GST }">0.00</div>
<div class="col-xs-2 col-md-2 col-lg-2"><span class="ui-spinner ui-widget ui-widget-content ui-corner-all qty-spinner"><input name="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_5" class="spinner qty ui-spinner-input valid" id="1_Meal_Replacement_BBQ_Pack_Breakfast_or_Dinner_5" role="spinbutton" aria-invalid="false" aria-valuenow="2" aria-valuemin="0" onclick="this.setSelectionRange(0, this.value.length)" data-bind="attr: { id: pg.Id + '_' + $index(), name: pg.Id + '_' + $index() }, value: pi.Quantity, valueUpdate: 'keyup', event: { spinstop: QuantityChange, spinstart: QuantityChange }" autocomplete="off"><a tabindex="-1" class="ui-spinner-button ui-spinner-up ui-corner-tr"><span class="ui-icon ui-icon-triangle-1-n">▲</span></a>
<a
tabindex="-1" class="ui-spinner-button ui-spinner-down ui-corner-br"><span class="ui-icon ui-icon-triangle-1-s">▼</span></a>
</span>
</div>
<div class="col-xs-2" data-bind="{ text: pi.Subtotal }">0.00</div>
</div>
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- ko if: pg.Id === pi.Group() -->
<!-- /ko -->
<!-- /ko -->
<div class="row product-row subtotals">
<div class="col-xs-10 col-md-10 col-lg-10">Total</div>
<div class="col-xs-2 col-md-2 col-lg-2" data-bind="{ text: Subtotal }">0.00</div>
</div>
</div>