HTML5:Oninput - 未定义

时间:2014-03-20 02:55:43

标签: javascript html5

以下代码不起作用。控制台返回错误

  

未捕获的ReferenceError:未定义金额"。

然而,"金额"和" resultPriceAmount"定义。我用另一种方式打电话给他们?

<form oninput="resultPriceAmount.value = (parseInt(rangeAmount.value) * 29.90).toFixed(2); amount.value = (parseInt(rangeAmount.value)); message.value = amount.value + ' - R$ ' + resultPriceAmount.value;">
 1<input type="range" id="rangeAmount" min="1" max="3" value="1">3
 <a href="#" class="button">Buy <output name="message" for="rangeAmount"></output></a>
</form>

修改 的 这种方式有效,但代码混淆了。

<form oninput="message.value = (parseInt(rangeAmount.value)) + ' - R$ ' + (parseInt(rangeAmount.value) * 29.90).toFixed(2);">

这就是我想要避免的事情(我以后会做更大的事情)

5 个答案:

答案 0 :(得分:2)

您正在尝试使用变量而不是通过id获取input元素。您可以使用以下内容:

document.getElementById('rangeAmount')

而不是:

rangeAmount

或者,你可以保持原样,但在使用任何变量之前定义它:

rangeAmount = document.getElementById('rangeAmount')
显然,对其他非工作变量也这样做。

答案 1 :(得分:0)

它表示没有id / name amount的元素参见

<form oninput="resultPriceAmount.value = (parseInt(rangeAmount.value) * 29.90).toFixed(2); amount.value = (parseInt(rangeAmount.value)); message.value = amount.value + ' - R$ ' + resultPriceAmount.value;">1
    <input type="range" id="rangeAmount" min="1" max="3" value="1" />3
    <a href="#" class="button">Buy<output name="message" for="rangeAmount"></output></a>
</form>
<input id="resultPriceAmount" />
<input id="amount" value="2"/>

演示:Fiddle

答案 2 :(得分:0)

缺少/> <input type="range" id="rangeAmount" min="1" max="3" value="1">

<form oninput="resultPriceAmount.value = (parseInt(rangeAmount.value) * 29.90).toFixed(2); amount.value = (parseInt(rangeAmount.value)); message.value = amount.value + ' - R$ ' + resultPriceAmount.value;">
 1<input type="range" id="rangeAmount" min="1" max="3" value="1">3
 <a href="#" class="button">Buy <output name="message" for="rangeAmount"></output></a>
</form>

其他例子

<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
<input type="range" id="a" value="50">100 +
<input type="number" id="b" value="50">=
<output name="x" for="a b"></output>
</form>

答案 3 :(得分:0)

将输入放在表单中时似乎工作。 http://jsfiddle.net/7c9eE/5/

<form oninput="resultPriceAmount.value = (parseInt(rangeAmount.value) * 29.90).toFixed(2); amount.value = (parseInt(rangeAmount.value)); message.value = amount.value + ' - R$ ' + resultPriceAmount.value;">1
    <input type="range" id="rangeAmount" min="1" max="3" value="1" />3
    <a href="#" class="button">Buy<output name="message" for="rangeAmount"></output></a>
<input id="resultPriceAmount" />
<input id="amount" value="2"/>
</form>

答案 4 :(得分:0)

使用变量(var)代替HTML输入。 http://jsfiddle.net/7c9eE/6/

<form oninput="var resultPriceAmount = (parseInt(rangeAmount.value) * 29.90).toFixed(2); var amount = (parseInt(rangeAmount.value)); message.value = amount + ' - R$ ' + resultPriceAmount">
 1<input type="range" id="rangeAmount" min="1" max="3" value="1">3
 <a href="#" class="button">Buy <output name="message" for="rangeAmount"></output></a>
</form>