Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5:Oninput-未定义_Javascript_Html - Fatal编程技术网

Javascript HTML5:Oninput-未定义

Javascript HTML5:Oninput-未定义,javascript,html,Javascript,Html,下面的代码不起作用。控制台返回错误 未捕获引用错误:未定义金额” 但是,“amount”和“resultPriceAmount”是有定义的,我用另一种方式调用它们 <form oninput="resultPriceAmount.value = (parseInt(rangeAmount.value) * 29.90).toFixed(2); amount.value = (parseInt(rangeAmount.value)); message.value = amount.value

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

未捕获引用错误:未定义金额”

但是,“amount”和“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>

13
编辑: 这种方法可行,但代码会变得混乱



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

您试图使用变量,而不是通过id获取输入元素。您可以使用以下内容:

document.getElementById('rangeAmount')
而不是:

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

rangeAmount = document.getElementById('rangeAmount')

显然,对其他非工作变量也要这样做。

它说没有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"/>
1
3.

演示:

缺少
/>


13
其他例子

<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>
0
100 +
=

当您将输入放入表单中时,它似乎起作用。

1
3.
使用变量(var)代替HTML输入。


13

没有名称为/id
amount的字段
这是HTML5特有的吗?@j08691
oninput
,尽管这实际上是一个js问题。为什么有这么多js代码内联?另外,不要使用
href=”#“
;当您单击
标记输入已经有一段时间了,但我可以看到的范围类型是HTML5时,浏览器将滚动到顶部。猛禽,我知道,这不是一个好方法。理想情况下,在oninput own中收集值集而不创建更多元素。我正在修复Arun P Johny示例,我不理解您的代码,因为您的示例中没有数量。是的,有价值。“amount”和“resultPriceAmount”是在“oninput”的开头定义的,它们就是我想要调用的。你是在混合html输入和变量吗?我相信这是我的错误。我试图在“oninput”中设置变量,但是没有起作用。谢谢,但这对于我的案例来说是不必要的,这不是错误。在这种情况下,这不是完整的代码,这留下了广泛的歧义。仅基于此代码,可能是因为您没有id为
amount
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="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>
<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>
<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>