Сохраните и укажите размер вашего объекта и обновите его соответствующим образом.В качестве альтернативы вы можете указать размер и количество в качестве значения элемента select, а затем обработать строку, например value = "s | 10", а затем разбить строку или использовать атрибут данных html (или какой-либо другой атрибут).В любом случае, я думаю, что это лучший вариант ниже:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<script>
sizes = {"m": 5, "s": 10, "l":2, "xl": 50}
$(function(){
$("#sizes").change(function(){
index = $(this).val();
var html = '<select name="quantity">';
for (var i=0;i<sizes[index];i++){
html += "<option value=" + (i + 1) +">" + (i+1) + "</option>";
}
html +="</select>"
$("#quantity").html(html);
})
})
</script>
</head>
<body>
<label>Sizes
<select id="sizes" name="item_options[product_size]">
<option value="s">small <span class="avail-inventory">5</span></option>
<option value="m">medium <span class="avail-inventory">10</span></option>
<option value="l">large <span class="avail-inventory">2</span></option>
<option value="xl">extra large <span class="avail-inventory">50</span></option>
</select>
</label>
<br>
<label>Quantity</label>
<span id="quantity">
Please select size first
</span>
</body>
</html>
РЕДАКТИРОВАТЬ
, если вы хотите, чтобы раскрывающийся список отображался здесь, как это сделать:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<script>
sizes = {"m": 5, "s": 10, "l":2, "xl": 50}
$(function(){
$("#sizes").change(function(){
index = $(this).val();
console.log(sizes[index])
var html = '';
for (var i=0;i<sizes[index];i++){
html += "<option value=" + (i + 1) +">" + (i+1) + "</option>";
}
$("#quantity").html(html);
$("#quantity").removeAttr("disabled");
})
})
</script>
</head>
<body>
<label>Sizes
<select id="sizes" name="item_options[product_size]">
<option value="s">small <span class="avail-inventory">5</span></option>
<option value="m">medium <span class="avail-inventory">10</span></option>
<option value="l">large <span class="avail-inventory">2</span></option>
<option value="xl">extra large <span class="avail-inventory">50</span></option>
</select>
</label>
<br>
<label>Quantity</label>
<select id="quantity" disabled=true>
<option>Please select size first</option></select>
</body>
</html>