jQuery从变量中获取NaN和[object object]
jQuery getting back NaN and [object Object] from variables
我在让脚本工作时遇到了一些问题。我的脚本计算订单数量和每个订单的权重。当按下"新行"按钮时,我的表单实际上是由javascript创建的。我正在努力做到这一点,这样每当填写3个值(商品数量、盒子中的商品数量、每个订单的盒子数量)时,它就会自动为您提供订单总数。此外,当给定单个项目的重量时,它会给出订单的总重量。所有这些都发生在使用jquery的keyup上。我只需要javaScript部分的帮助。后来我用AJAX处理我的表单,一切都正常,但当我试图实现它时,它就坏了。
每当我使用alert()来查看我的代码为updateForm()函数分配了什么值时,我就会得到alert($totalitems)->[object object]和alert($weightperpal)->NaN的值。有人能帮我解决这个问题吗?这是我的代码:
HTML:
<button id="addLine" type="submit" class="btn red">Add Line</button>
JavaScript:
$("#addLine").click(function(e){
e.preventDefault();
lineNum++;
var cont = '<div class="control-group">'+
'<label class="control-label">Total # of items</label>'+
'<div class="controls">'+
'<input type="text" placeholder="" class="m-wrap medium orderField" name="totalitems'+lineNum+'" id="totalitF" no="'+ lineNum +'"/>'+
'<span class="help-inline" style="font-size:10px; font-style:italic;">Not mandatory</span>'+
'</div>'+
'</div>'+
'<div class="control-group">'+
'<label class="control-label">Items per box</label>'+
'<div class="controls">'+
'<input type="text" placeholder="0" class="m-wrap medium orderField" name="ipb'+lineNum+'" id="itemspbF" no="'+ lineNum +'"/>'+
'<span class="help-inline" style="font-size:10px; font-style:italic;">#</span>'+
'</div>'+
'</div>'+
'<div class="control-group">'+
'<label class="control-label">Boxes per order</label>'+
'<div class="controls">'+
'<input type="text" placeholder="0" class="m-wrap medium orderField" name="bpp'+lineNum+'" id="boxesppF" no="'+ lineNum +'"/>'+
'<span class="help-inline" style="font-size:10px; font-style:italic;">#</span>'+
'</div>'+
'</div>'+
'<div class="control-group">'+
'<label class="control-label">Weight per Item</label>'+
'<div class="controls">'+
'<input type="text" placeholder="0" class="m-wrap medium orderField" name="wpi'+lineNum+'" id="weightpiF" no="'+ lineNum +'"/>'+
'<span class="help-inline" style="font-size:10px; font-style:italic;">#</span>'+
'</div>'+
'</div>'+
'<div class="control-group">'+
'<label class="control-label">Total number of Orders</label>'+
'<div class="controls">'+
'<input type="text" placeholder="" class="m-wrap medium orderField" name="pallets'+lineNum+'" id="palletsF" no="'+ lineNum +'"/>'+
'<span class="help-inline" style="font-size:10px; font-style:italic;"># of pallets</span>'+
'</div>'+
'</div>'+
'<div class="control-group">'+
'<label class="control-label">Weight per order</label>'+
'<div class="controls">'+
'<input type="text" placeholder="" class="m-wrap medium orderField" name="wpp'+lineNum+'" id="weightppF" no="'+ lineNum +'"/>'+
'<span class="help-inline" style="font-size:10px; font-style:italic;">Total number of boxes</span>'+
'</div>'+
'</div>'+
'</div>';
$(document).on('keyup','.weightpiF',function(){
var valueField = $(this).attr('no');
updateFormRoe(valueField);
});
$(document).on('keyup','.weightppF',function(){
var valueField = $(this).attr('no');
updateFormRoe(valueField);
});
$(document).on('keyup','.itemspbF',function(){
var valueField = $(this).attr('no');
updateFormRoe(valueField);
});
$(document).on('keyup','.boxesppF',function(){
var valueField = $(this).attr('no');
updateFormRoe(valueField);
});
function updateFormRoe(number){
alert(number);
var $totalitems = $('#totalitF'+number);
alert($totalitems);
var $itemspb = $('#itemspbF'+number).val();
var $boxespp = $('#boxesppF'+number).val();
var $weightperitem = $('#weightpiF'+number).val();
var $itemsinpallet = $itemspb * $boxespp;
var $totalpals = $totalitems / $itemsinpallet;
var $weightperpal = ($itemsinpallet) * $weightperitem;
alert($weightperpal);
if($totalitems !== '' && $itemspb !== '' && $boxespp !== ''){
if($totalpals == Infinity){
$('#palletsF'+number).val('0');
}else{
$('#palletsF'+number).val($totalpals);
}
$('#weightppF'+number).val($weightperpal);
}
}
提前感谢!
像$('#totalitF'+number)
这样的选择器都无法工作,因为您没有在ID中添加数字。代替:
id="totalitF" no="'+ lineNum +'"/>'
应该是:
id="totalitF'+ lineNum +'" data-no="'+ lineNum +'"/>'
你不应该创建自己的属性。如果要向元素添加其他属性,请使用data-
属性。然后在jQuery中,您可以将其作为访问
$(this).data('no')
以获取值。在您的其他函数中使用它来代替$(this).attr('no')
。
相关文章:
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- JavaScript NaN equvialence
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 有没有一种方法可以列出Ember.Object的所有绑定
- 如何为排除无穷大和NaN的数字声明Flow类型
- 为什么我在这个javaScript代码中使用NaN
- 如何取消object.prototypes javascript的一个函数
- 如何防止Math.max()返回NaN
- 为什么是文档.旧版应用程序中的DOM-object.properties为null
- 将*.js文件的内容放入Object中
- 函数将输出nan而不是数字,为什么
- Object.prototype using 'this'
- 使用Object.create()的角度服务继承
- jquery中出现NaN错误.已经尝试过ParseInt,但仍然不起作用
- 如何使用object.assign()从其他对象引用基本对象属性
- 尝试求和时,在我的表的页脚中返回$NaN
- 循环的数组推入在Object容器中具有不同的值
- jQuery从变量中获取NaN和[object object]
- JavaScript:什么是 NaN、Object 或 Primitive
- 传单未捕获错误:Invalid LatLng object: (NaN, NaN)