我根据选择设置输入的最大值。
如果选择了任何选项,我希望其data-max
属性在输入字段中设置为max。
选择选项
<select size="1" name="options" class="select">
<option value="30" data-max="40">30</option>
<option value="31" data-max="22">31</option>
<option value="32" data-max="4">32</option>
<option value="33" data-max="400">33</option>
<option value="34" data-max="36">34</option>
</select>
这是将设置最大值的输入:
<input type="number" class="qty" name="qty" value="1" min="1" max="100" />
试过这个,但没有效果
$('select').change(function () {
$('input[type=number]').attr('max', $(this).data('max'));
});
答案 0 :(得分:3)
您需要选择所选选项的数据属性,而不是选择元素。
变化:
$('input[type=number]').attr('max', $(this).data('max'));
为:
$('input[type=number]').attr('max', $('option:selected',this).data('max'));
<强> jsFiddle example 强>
答案 1 :(得分:1)
我不知道你为什么要使用data-max而不是值本身,但如果你真的想要这样做,你需要先获取option元素才能使用它的data-max值。 (目前,您正在使用输入的data-max。)
$('select').change(function (e) {
var selectedIndex = $('select').prop("selectedIndex");
var selectedOption = $('select').find("option")[selectedIndex];
$('input[type=number]').attr('max', $(selectedOption).data('max'));
});