所选数据属性的最大输入值

时间:2015-06-11 17:49:49

标签: jquery

我根据选择设置输入的最大值。

如果选择了任何选项,我希望其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'));
});

demo fiddle

2 个答案:

答案 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'));
});