使用onchange事件处理程序来更改第二个选择列表

时间:2012-10-01 18:24:05

标签: javascript asp-classic onchange

有一个表单字段要求产品,这些是各种尺寸,第二个表单字段要求数量。

每个产品的库存数量显示在第一个选择中,我希望第二个选择是可用库存的最大值,因此客户订购的订单不能超过我的订单。

这是第一个选择(也链接显示自定义图片)网站是ASP

<select name="barcode" id="imageselect">
 <option value>Please Select .....</option>
 <option value="322974">6.6lbs 100m  - £21.00 ( 2 in stock )</option>
 <option value="322975">8.2lbs 100m  - £21.00 ( 3 in stock )</option>
 <option value="322976"disabled=disabled>10.4lbs 100m  - £21.00 - Out of stock</option>
 <option value="323656">13.7lbs 100ms  - £21.00 ( 4 in stock )</option>
</select>

这是第二个选择:

<select name="quantity">
<option value="1" selected="selected">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
</select>

尝试过使用onchange事件,但没有任何乐趣。

英国Autotrader有一个非常好的例子,可用于他们的汽车品牌/型号。

2 个答案:

答案 0 :(得分:0)

这应该做你想要的......

注意:我通过添加&#39;股票来减少拍摄。属性到您的选项,只是为了避免解析字符串。

<option value="322974">6.6lbs 100m  - £21.00 ( 2 in stock )</option>

如果您想避免这种情况,下面的示例还会向您展示如何让文本解析stock属性。

$("#imageselect").change(function(event){
    var $this = $(this),
        value = $this.val();
    var $option = $("option[value="+value+"]", $this),
        text = $option.text(),   // you could parse this to get stock OR
        stock = parseInt($option.attr('stock'));  // short-cut: use stock attr

    // only show the first n options:
    var $opts = $("select[name=quantity] option");
    $opts.hide().slice(0, stock).show();
});

答案 1 :(得分:0)

第二个选择将显示最大库存。所以你需要做的是将值存储在数据库中,获取最大值,当你使用asp时,用ajax调用页面,这将在这里显示为选择选项