Extjs 实现输入数量,实时更改总价
// 总价
var totalNum = '0.00'; //总价初始值 var $total = new Ext.form.Label({
text: '消费金额 : ¥' + totalNum + '元',
name: 'total',
margin: '0 0 0 44'
}); //购买数量form
var $buyNum = new Ext.form.TextField({
xtype: 'textfield',
width: 200,
labelWidth: 60,
fieldLabel: '购买数量',
value: '单位(个)',
margin: '5 0 10 45',
fieldStyle: 'color:gray',
enableKeyEvents: true,
listeners: {
focus: function () {
this.setValue("");
},
change: function (pthis, newValue, oldValue, eOpts ){
totalNum = (newValue * 0.2).toFixed(2); //验证输入数字
if (/^[0-9]*$/.test(newValue) === true) {
$total.setConfig('text', '消费金额:¥' + totalNum + '元');
} else {
newValue = 0;
}
}
}
}); // 创建内容
var $label = [{
xtype: 'label',
text: '当前可用余额 :' + "¥200元',
margin: '10 0 0 41'
}, {
xtype: 'tbtext',
margin: '10 0 0 40',
text: '单价 : 0.2元/个' //可以拼接使动态给值
}, $buyNum, $total]; // 创建窗口
var win = Ext.create('Ext.window.Window', {
title: '购买商品',
width: 300,
height: 200,
layout: 'vbox',
modal: true,
plain: true,
items: $label,
buttons: [{
text: '确定'
}, {
text: '取消',
handler: function () {
win.close();
}
}] }); win.show();
在实现这个功能的过程中也遇到了一点问题。我最开始是使用的‘keyup’事件,出现的问题就是每次刷新页面后第一次keyup的时候,总价偶尔会不变,还是初始状态。第二次开始keyup总价才开始实时改变。当时很奇怪,只有刷新后的第一次才会偶尔不好使。
我以为是代码执行顺序的问题,稍作调整之后还是存在问题。检测代码,不是算法的问题。那就是事件的问题了。又查了API,看是否有其他事件也可以实现这个功能,果不其然,‘change’是个好东西。
change :(pthis, newValue, oldValue, eOpts )
连获取输入框值得方式都省了。而且change是检测输入框值改变的事件,它就不会像keyup事件带来各种意想不到的问题。
最后总结:使用框架多看API才是王道啊~~~~~~
Extjs 实现输入数量,实时更改总价的更多相关文章
- iOS UITextView 输入内容实时更新cell的高度
iOS UITextView 输入内容实时更新cell的高度 2014-12-26 11:37 编辑: suiling 分类:iOS开发 来源:Vito Zhang'blog 11 4741 UIT ...
- localStorage实现购物车数量单价和总价实时同步(二)
利用localStorage实时显示购物车小计和总价页面显示: 和昨天的原理相同,本地存储同时实时循环计算总价之和,注意循环时候的先清空再计算 Success is getting what you ...
- 【C#】让DataGridView输入中实时更新数据源中的计算列
本文适用Winform开发,且DataGridView的数据源为DataTable/DataView的情况. 理解前提:熟知DataTable.DataView 求:更好方案 考虑这样一个场景: 某D ...
- magento购物车添加减少数量 实时更新购物车
magento实时更新购物车商品数量 <td> <button onclick="addQtyone();" type="submit"> ...
- 使用JQuery统计input和textarea文字输入数量代码
本文主要介绍了jQuery实现统计输入文字个数的方法,需要的朋友可以参考下. HTML部分: <input type="text" value="我是输入的文字&q ...
- Extjs文本输入域
var form = Ext.create('Ext.form.Panel', { renderTo: Ext.getBody(), frame: tr ...
- Dynamics CRM 数据数量限制更改
1.在CRM2016中如果想要导出超过10000记录数据,更新 MaxRecordsForExportToExcel 这个字段的值. SELECT MaxRecordsForExportToExce ...
- js实时计算价格
//通过数量,单价的输入,实时显示总价 $("#number,#price").on("input",function(e){ $("#totalPr ...
- 【Knockout.js 学习体验之旅】(1)ko初体验
前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...
随机推荐
- JQuery开发之Galleriffic图片插件介绍
Galleriffic是一个用于创建快速展示相册中照片的jQuery插件.从图一中可以看成,图片既可以以幻灯片的方式查看,也可以手动点击缩略图查看.Galleriffic还支持分页,从而使得它能够展示 ...
- vs2010 please select a valid location in the repository
vs2010 please select a valid location in the repository AnkhSvn版本有问题,我后来使用2.1就ok了记录一下
- Cocoa Foundation框架学习笔记 - NSCalendar
+ (void)beginTest { /* FOUNDATION_EXPORT NSString * const NSGregorianCalendar; //公历(常用) FOUNDATION_E ...
- ylb:SQL Server中的escape(逃逸)
ylbtech-SQL Server:SQL Server-SQL中的escape(逃逸) SQL Server中的escape(逃逸). 1,SQL Server中的escape(逃逸) 返回顶部 ...
- loadrunner中lr_log_message和lr_output_message 的区别
LoadRunner中lr_output_message和lr_log_message(1)在vgen中,我们必须写输出函数输出信息,将我们所想要了解的信息用函数输出,主要有这么几个函数输出信息: l ...
- Zabbix监控Linux磁盘I/O
东西都上传到这里了: https://github.com/RexKang/Zabbix/tree/master/OS/Linux-disk-discovery 需要用到的东西: Zabbix的L ...
- Substrings 子字符串-----搜索
Description You are given a number of case-sensitive strings of alphabetic characters, find the larg ...
- Yii笔记---redirect重定向
Yii的redirect方法在CControler与CHttpRequest之中都有被定义,CController中的redirect调用了CHttpRequest中的redirect方法.我们平常调 ...
- javascript正则表达式简介
javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String ...
- 高效使用STL
高效使用STL 参考:http://blog.jobbole.com/99115/ 仅仅是个选择的问题,都是STL,可能写出来的效率相差几倍:熟悉以下条款,高效的使用STL: 当对象很大时,建立指针 ...