Javascript 函数名为";清晰的;没有人打电话。试着打电话;清除();使用内嵌js
我不知道为什么我的函数没有被调用。我将Javascript 函数名为";清晰的;没有人打电话。试着打电话;清除();使用内嵌js,javascript,Javascript,我不知道为什么我的函数没有被调用。我将警报(“test”)放在那里只是为了测试函数是否被调用,而不是 HTML: JS: 功能清除(价格、数量){ 警报(“测试”); i=0; 如果(i可能是因为clear(price,quantity)在你的html中无效。我打赌如果你检查你的控制台,它会说“price”不存在 为了验证,我创建了一个,它在控制台(f12)中显示了这个错误 未捕获的引用错误:未定义价格 问题在于内联js中使用的名称“clear!” 这是因为“clear”指的是文档。clea
警报(“test”)
放在那里只是为了测试函数是否被调用,而不是
HTML:
JS:
功能清除(价格、数量){
警报(“测试”);
i=0;
如果(i可能是因为clear(price,quantity)
在你的html中无效。我打赌如果你检查你的控制台,它会说“price”不存在
为了验证,我创建了一个,它在控制台(f12)中显示了这个错误
未捕获的引用错误:未定义价格
问题在于内联js中使用的名称“clear!”
这是因为“clear”指的是文档。clear
完全不是您想要的。这是不使用内联js的另一个理由。请阅读此处:此处:可能是因为html中的clear(price,quantity)
无效。我打赌,如果您检查控制台,它会说“price”不存在
为了验证,我创建了一个,它在控制台(f12)中显示了这个错误
未捕获的引用错误:未定义价格
问题在于内联js中使用的名称“clear!”
这是因为“clear”指的是文档。clear
完全不是您想要的。这是不使用内联js的另一个参数。请阅读这里:这里:在这个函数中-onclick=“clear(price,quantity)”
-price
和quantity
是尚未定义的变量,因此在调用clear
之前,您将得到一个参考错误
您可以使用window.price=1;
或(在相同或更广泛的范围内)var price=1
来定义它们。后者通常是更好的选择
看起来您想要传递您拥有的输入元素的节点列表。您不能仅仅将它们作为全局引用,您必须通过DOM访问它们
由于您正在处理表单控件上的单击事件句柄,因此可以通过this
访问表单控件。表单控件元素对象具有引用其关联表单的表单
属性。表单元素对象具有元素
集合。元素集合允许您访问表单控件如果有多个控件具有相同的名称,则会得到节点列表,而不是节点本身
onclick="clear(this.form.elements.price,this.form.elements.quantity)"
在此函数中-onclick=“clear(price,quantity)”
-price
和quantity
是尚未定义的变量,因此在调用clear
之前,您将得到一个参考错误
您可以使用window.price=1;
或(在相同或更广泛的范围内)var price=1
来定义它们。后者通常是更好的选择
看起来您想要传递您拥有的输入元素的节点列表。您不能仅仅将它们作为全局引用,您必须通过DOM访问它们
由于您正在处理表单控件上的单击事件句柄,因此可以通过this
访问表单控件。表单控件元素对象具有引用其关联表单的表单
属性。表单元素对象具有元素
集合。元素集合允许您访问表单控件如果有多个控件具有相同的名称,则会得到节点列表,而不是节点本身
onclick="clear(this.form.elements.price,this.form.elements.quantity)"
您的JavaScript控制台中是否有任何错误?您在哪里声明js?@PedroL。-何时声明并不重要。在单击事件触发且函数未尝试接触DOM之前,不会调用该函数。是否要根据if进行循环?是否定义了价格和数量?您的JavaScript控制台中是否有任何错误?您在哪里声明调用js?@PedroL.-什么时候调用都没关系。直到点击事件触发,函数才被调用,函数也不会尝试触碰DOM。你想从if开始循环吗?价格和数量定义了吗?我刚刚发布了所有代码,你可以看到,它们是defined@Snubber-不,不是。创建HTML元素并不定义JavaSccript变量。(至少不是以任何标准或一致的方式)我只是发布了所有代码,以便您可以看到,它们是defined@Snubber-不,不是。创建HTML元素不会定义JavaScript变量。(至少不会以任何标准或一致的方式)我刚刚发布了所有的代码,所以你可以看到,它们被定义了。我刚刚发布了所有的代码,所以你可以看到,它们被定义了
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Amount Owed</title>
<script type = "text/javascript">
function amount(price, quantity){
sum1 = price[0].value * quantity[0].value;
sum2 = price[1].value * quantity[1].value;
sum3 = price[2].value * quantity[2].value;
sum4 = price[3].value * quantity[3].value;
return sum1 + sum2 + sum3 + sum4;
}
function clear(price,quantity){
alert("test");
i=0;
if(i<5){
price[0].value = "";
quantity[0].value = "";
i++;
}
}
</script>
</head>
<body>
<h1>Amount Owed</h1>
<p>Enter price for first amount and quantity for each item</p>
<form>
<table>
<tr>
<td>PRICE</td>
<td>QUANTITY</td>
</tr>
<tr>
<td><input type="text" name="price" size="6"></td>
<td><input type="text" name="quantity" size="6"></td>
</tr>
<tr>
<td><input type="text" name="price" size="6"></td>
<td><input type="text" name="quantity" size="6"></td>
</tr>
<tr>
<td><input type="text" name="price" size="6"></td>
<td><input type="text" name="quantity" size="6"></td>
</tr>
<tr>
<td><input type="text" name="price" size="6"></td>
<td><input type="text" name="quantity" size="6"></td>
</tr>
</table>
<input type="button" onclick="pay.value = amount(price,quantity)" value="Total">
<input type="button" onclick="clear(price,quantity)" value="Clear">
<p>The total is: <input type="text" id="pay" name="pay"></p>
</form>
</body>
</html>
onclick="clear(this.form.elements.price,this.form.elements.quantity)"