&引用;未捕获类型错误:对象不是函数;在JavaScript中
我很难理解为什么这不起作用。我的表单上有两个字段,当我单击一个按钮时,另一个文本字段值将更改为该函数的值。我怎样才能让它工作&引用;未捕获类型错误:对象不是函数;在JavaScript中,javascript,function,Javascript,Function,我很难理解为什么这不起作用。我的表单上有两个字段,当我单击一个按钮时,另一个文本字段值将更改为该函数的值。我怎样才能让它工作 function calculate() { var odometerStart = parseFloat (document.getElementById('odometerStart').value); var odometerEnd = parseFloat(document.getElementById('odometerEnd').value);
function calculate()
{
var odometerStart = parseFloat (document.getElementById('odometerStart').value);
var odometerEnd = parseFloat(document.getElementById('odometerEnd').value);
var distance = document.getElementById('distance');
var amount = document.getElementById('amount');
distance.value = odometerEnd - odometerStart;
}
var val = $("#taskentry").validate({
rules: {
tripDate: {required: true}
tripContact: {required: true}
odometerStart: {required: true}
}
});
Odometer: Start <input type="number" name="odometer[Start]" id="odometerStart" min="0" max="999999" placeholder="0" class="required"/><br/>
Odometer: End <input type="number" name="odometer[End]" id="odometerEnd" min="0" max="999999" placeholder="999999" class="required"/><br/>
Comments <textarea name="comments" id="comments" rows="2" cols="2"></textarea><br/>
Distance <input type="text" name="distance" id="distance" value="" placeholder="0.00"/><br/>
<input type="button" name="calculate" value="Calculate" onclick="calculate()"/>
函数计算()
{
var odometerStart=parseFloat(document.getElementById('odometerStart').value);
var odometrend=parseFloat(document.getElementById('odometrend').value);
var distance=document.getElementById('distance');
var amount=document.getElementById('amount');
distance.value=里程计趋势-里程计开始;
}
var val=$(“#任务条目”).validate({
规则:{
tripDate:{required:true}
tripContact:{required:true}
odometerStart:{必需:true}
}
});
里程表:启动
里程表:结束
评论
距离
我正在使用开发者工具在Google Chrome中调试这个程序,在计算按钮所在的位置出现错误“uncaught TypeError:Object不是函数”。也许您需要逗号:
var val = $("#taskentry").validate({
rules: {
tripDate: {required: true},
tripContact: {required: true},
odometerStart: {required: true}
}
});
很抱歉,你的问题和我的答案之间存在巨大差距:) 我也遇到了同样的问题,并找到了原因——浏览器会根据页面中html标记的ID属性自动填充对象。 简单测试
<div id='test'>Just testing</div>
<script type='text/javascript'>
alert(test.innerHTML);
</script>
只是测试
警报(test.innerHTML);
在您的例子中,有一个id='calculate'的元素,请重命名它或重命名用于计算的函数。在我的例子中,我有
当我调用javascript函数register()
时,会得到同样的警告,我猜它与input
标记中的id
或title
属性冲突,所以我只是将此函数改为另一个名称,例如signup()
,它可以正常工作
我希望这能有所帮助 我创建的一个函数出现了这个问题,它与Firefox完美配合,而Chrome和Safari则出现了这个错误。解决方案:更改函数的名称。原始名称为
expand(target)
,替换为expand\u compress(target)。它成功了。我想函数expand()
存在于Firefox之外的其他地方,他说你有语法错误。逗号分隔对象的属性,因此请保留这些逗号。如果询问者说它不起作用,为什么会将其标记为正确答案?您的代码可以工作。这里有一把小提琴来证明这一点:JSLint上没有任何内容,也没有返回异常——都有相同的问题,这是我的修复方法。直到现在,我才知道这种浏览器行为!如果我知道这一点,我就不需要太多的document.getElementById()。您可能需要注意为什么更改很重要。您可能有一个id为“expand”的html标记