选择下拉列表并更改输入的步骤属性

时间:2014-09-16 09:23:30

标签: javascript jquery

我想在选择A选项时,输入值将为10,20,30 ... 对于B选项,输入值为5,10,15,20 那段代码没有用到什么错误

<select onchange="changeValue(this);" id="size" name="attribute_size">

    <option selected="selected" value="">choose option…</option>                              
    <option class="active" value="A">A</option>
    <option class="active" value="B">B</option>
</select>

<input min="1" step="1" id="quantity" value="1" title="quantity" class="input-text qty text" size="4" type="number">

function changeValue() {
    var option2 = document.getElementById('size').options[document.getElementById('size').selectedIndex].id;
    if (option2 == "A") {
        document.getElementById('quantity').setAttribute('step', "10");
    }
else  (option2 == "B")
{
        document.getElementById('quantity').setAttribute('step', "5");
    }
}

2 个答案:

答案 0 :(得分:0)

if之后错过else会导致控制台错误,

else if (option2 == "B")

min属性更改为“0”,

<input min="0" step="1" id="quantity" value="0" title="quantity" class="input-text qty text" size="4" type="number">

和Javascript,

function changeValue(that) {
    var option2 =that.options[that.selectedIndex].text;
    var inputElm = document.getElementById('quantity');
    inputElm.value = 0;
    if (option2 == 'A') {
        inputElm.setAttribute('step', '10');
    } else if (option2 == 'B') {
        inputElm.setAttribute('step', '5');
    }
}

DEMO

此外,您可以在操作当前对象时使用参数中传递的this onject。

答案 1 :(得分:0)

您的代码中有多处错误。 (例如else if中的拼写错误,获取选择选项值并且不在changeValue方法中使用您的参数的错误方法)

我纠正了它们并把它们放在一起工作的例子:

<select onchange="changeValue(this);" id="size" name="attribute_size">
    <option selected="selected" value="">choose option...</option>                              
    <option class="active" value="A">A</option>
    <option class="active" value="B">B</option>
</select>

<input min="1" step="1" id="quantity" value="1" title="quantity" class="input-text qty text" size="4" type="number">

<script>
function changeValue(elem) {
    var input = document.getElementById('quantity');

    if (elem.value == "A") {
        input.setAttribute('step', "10");
    }else if (elem.value == "B") {
        input.setAttribute('step', "5");
    }
}
</script>