我COPANY问我开发内部使用的一个网站。该网站包含一个包含多行和多列下拉菜单的表单。下拉菜单表,其中第二列的值取决于第一列值
第一列包含我们销售的产品类型,第二列包含设备的子类型。 (例如:类型1 - 型号1,或类型1 - 模型2)
具有多个行是这样,我们可以在同一时间上载的多个设备的目的。 到目前为止,我已经想出了这一点:
<tr><td><select name="category">
<option value="0">-</option>
<option value="1">Type1</option>
<option value="2">Type2</option>
<option value="3">Type3</option>
<option value="4">Type4</option>
</select></td>
<td><select name="items">
<option value="3">-</option>
</select> </td> </tr>
<tr><td><select name="category">
<option value="0">-</option>
<option value="1">Type1</option>
<option value="2">Type2</option>
<option value="3">Type3</option>
<option value="4">Type4</option>
</select></td>
<td><select name="items">
<option value="3">-</option>
</select> </td> </tr>
和脚本部分:
var categories = {
"-": [{value: '3',text: '-'}],
"Type1": [{value: '1',text: 'model1'}, {value: '2',text: 'model2'}],
"Type2": [{value: '4',text: 'model3'}, {value: '10',text: 'model4'}],
"Type3": [{value: '6',text: 'model5'},{value: '6',text: 'model6'}, {value: '7',text: 'model7'}],
"Type4": [{value: '8',text: 'model8'}, {value: '9',text: 'model9'}, {value: '11',text: 'model10'}, {value: '12',text: 'model11'}, {value: '13',text: 'DELUXE EDITION'}]
};
function selectchange() {
var select = $('[name=items]');
select.empty();
$.each(categories[$(':selected', this).text()], function() {
select.append('<option value="' + this.value + '">' + this.text + '</option>');
});
}
$(function() {
$('[name=category]').on('change', selectchange);
});
我不需要一个数据库,产品和型号列表不会显著改变。 我的问题是:每当我更改第二排子型为例,第一排子类型更改为好。我应该在脚本中修改哪些内容以使每一行都单独运行? (最好的是,如果我能$ _ POST所有值作为一个数组)。
工作JFiddle例如这里: https://jsfiddle.net/L2cwqrus/