以下代码不起作用。控制台返回错误
未捕获的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);">
这就是我想要避免的事情(我以后会做更大的事情)
答案 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>