Javascript数学表单字段
我正在用一些javascript数学函数构建一个表单,但似乎无法让第三个字段按我所希望的那样工作Javascript数学表单字段,javascript,forms,math,input-field,Javascript,Forms,Math,Input Field,我正在用一些javascript数学函数构建一个表单,但似乎无法让第三个字段按我所希望的那样工作 当您在蓝色价格框字段中输入100时,“您希望为销售此瓶子支付多少费用” 然后25被放入下一个正确的字段 但是销售价格(包括税)字段不起作用,它应该是100,然后加上下一个字段,所以在本例中是125,然后乘以1.125。答案是140.63美元 表单字段 <label for="CAT_Custom_15"><b>How much would you like to be
- 当您在蓝色价格框字段中输入100时,“您希望为销售此瓶子支付多少费用”
- 然后25被放入下一个正确的字段
- 但是销售价格(包括税)字段不起作用,它应该是100,然后加上下一个字段,所以在本例中是125,然后乘以1.125。答案是140.63美元
表单字段
<label for="CAT_Custom_15"><b>How much would you like to be paid for selling this bottle?</b></label>
<input type="text" maxlength="4000" onchange="output()" name="CAT_Custom_15" id="CAT_Custom_15" class="cat_textbox price bborder" />
<label for="CAT_Custom_14">Cloudwine Commission 25%</label>
<input type="text" maxlength="4000" name="CAT_Custom_14" id="CAT_Custom_14" class="cat_textbox price" readonly="readonly" />
<label for="CAT_Custom_13">SELL PRICE INCLUDING TAX</label>
<input type="text" maxlength="4000" name="CAT_Custom_13" id="CAT_Custom_13" class="cat_textbox price" readonly="readonly" />
你把.toFixed(2)
搞砸了你的toFixed()
在jQuery
元素上,而不是在数值上
另外,toFixed()
返回一个字符串,我使用+
操作符将其转换为一个数字
我将计算结果存储在变量中,而不是再次从您的页面获取它们。这通过减少jQuery调用来提高性能
将JS更改为:
函数输出(){
var startPriceV2=+jQuery(“#CAT_Custom_15”).val();
var税=+(startPriceV2*(0.25)).toFixed(2);
var cloudCom=+((startPriceV2+税收)*1.125)。toFixed(2);
jQuery('#CAT_Custom_14').val(tax);
jQuery('#CAT_Custom_13').val(cloudCom);
}
标签{
显示:块;
}
你想卖这瓶酒得到多少钱?
云葡萄酒佣金25%
含税售价
到目前为止,数字四舍五入对于您的计算机来说只是外围设备(而且毫无意义)。您的案例是正确的体系结构和良好实践之一,例如,不使用输入字段作为计算字段,也不从html代码内部附加事件处理程序:使用jQuery也非常适合附加处理程序
我还发现“onchange”事件处理程序不会产生预期的结果,因此我将其更改为“onblur”。我无法解释为什么,但我将不深入探讨它,因为从html中附加处理程序肯定是不推荐的
至于开发和实践模式,请尝试以下“无声”片段:
提供头衔
#委托{
宽度:60px;
高度:20px;
边框:1px纯蓝色;
}
#最终价格{
宽度:60px;
高度:20px;
颜色:白色;
背景颜色:蓝色;
}
多少钱?
Cloudwine通讯:
价格:
函数输出()
{
让priceValue=Number($('#price').val()),
结果交付=数量(价格值*.25),
首次添加=价格值+结果交付,
结果最终=首次添加+首次添加*.125;
$('#commission').html(resultCommission);
$('finalPrice').html(resultFinal);
}
第二次计算中还有一个额外的错误。Op希望对价格加佣金征税,因此parseInt(startPriceV2)+parseInt(cloudCom)*(1.125)
应该是(parseInt(startPriceV2)+parseInt(cloudCom))*(1.125)
。这样的结果是$140.63,如所需。maxlength=“4000”是什么意思?这是字段默认值。很早,是的。但是您不想使用4000个字符来编写计算值,是吗?我觉得这种属性会给你的代码增加“噪音”,建议你放弃它。请看我的正确答案。希望你会发现它有用…谢谢,但它并没有把佣金加在包括税在内的项目上field@Jake-非常正确。请参考我自己的答案。
function output(){
var startPriceV2 = jQuery( "#CAT_Custom_15" ).val();
jQuery( '#CAT_Custom_14' ).val( parseInt(startPriceV2) * (0.25) ).toFixed(2);
var cloudCom = jQuery( '#CAT_Custom_14' ).val();
jQuery( '#CAT_Custom_13' ).val( parseInt(startPriceV2) + parseInt(cloudCom) * (1.125) ).toFixed(2);
}
function output(){
var startPriceV2 = jQuery( "#CAT_Custom_15" ).val();
jQuery( '#CAT_Custom_14' ).val( (parseInt(startPriceV2) * (0.25)).toFixed(2) );
var cloudCom = jQuery( '#CAT_Custom_14' ).val();
jQuery( '#CAT_Custom_13' ).val( (parseInt(startPriceV2) + parseInt(cloudCom) * (1.125)).toFixed(2) );
}