根据之前高手指点的代码,已经实现了点击某文本框的值显示该值,但是没有全部相加显示,应该怎么修改<script type="text/javascript">
$(document).ready(function() {
window.setInterval("ajaxStatusRequest();",1000);
});
function ajaxStatusRequest(){
var data = {};
$(".inpbot1").each(function (index, obj) {
$(obj).bind("blur", function () {//这行代码应该怎么修改?
data[index] = $(this).val();
showResult();
}).bind("keyup", function () {
var v = $(this).val();
$(this).val(v.replace(/[^\d\.]/g, '0'));
});
});
function showResult() {
var r = 0;
for (var i = 0; i < $(".inpbot1").length; i++) {//这里要求所有值相加,应该是错误的吧?
if (data[i]) {
r += parseFloat(data[i]);
}
}
$("#labAllResult").html(r);
$.ajax({
type: "GET",
url: "DaXie.ashx",
data: "r=" + r,
success: function (msg) {
$("#Label1").html(msg);
}
});
}
}
</script>现在的这个很卡,点几个文本框就死机了,应该是触发事件的问题,代码怎么优化啊?
望高手继续指点
$(document).ready(function() {
window.setInterval("ajaxStatusRequest();",1000);
});
function ajaxStatusRequest(){
var data = {};
$(".inpbot1").each(function (index, obj) {
$(obj).bind("blur", function () {//这行代码应该怎么修改?
data[index] = $(this).val();
showResult();
}).bind("keyup", function () {
var v = $(this).val();
$(this).val(v.replace(/[^\d\.]/g, '0'));
});
});
function showResult() {
var r = 0;
for (var i = 0; i < $(".inpbot1").length; i++) {//这里要求所有值相加,应该是错误的吧?
if (data[i]) {
r += parseFloat(data[i]);
}
}
$("#labAllResult").html(r);
$.ajax({
type: "GET",
url: "DaXie.ashx",
data: "r=" + r,
success: function (msg) {
$("#Label1").html(msg);
}
});
}
}
</script>现在的这个很卡,点几个文本框就死机了,应该是触发事件的问题,代码怎么优化啊?
望高手继续指点
解决方案 »
- Extjs高手请进!!!如何在表单下面加系统时间。
- jquery的validate,当ID为动态时如何写?
- extjs在grid里边添加连接的问题
- 为什么我的数据库会有有乱码
- 怎样用javascript获取css在外面定义的高度?
- 关于parent.document.getElementById(" target ").src= url
- 为什么在家里不能登录CSDN?!郁闷了一个周末
- <a href="a.jsp?parm1=一个javascript的变量">Test</a> 该怎么写??
- 急!!!如何点击一段文字替换另一段文字?
- To: zz315(钟钟)
- 如何用jquery实现鼠标悬停显示隐藏的菜单
- js获取表格中td的坐标
你看你的代码 上来就每隔1秒发ajax请求 并发次数过多 页面响应不及时
再者每次函数内部的逻辑代码不够精简 许多语句涉及到性能点 楼主并未优化
比如 for循环条件的优化 +=的操作 包括你的jq语法上 都有优化的余地
然后判断是否是你想要的选框,再运算!!!
楼主的思路必须要每隔1秒发一次请求么?这样前端有些吃不消 再怎么优化也会有些性能上的问题
代码中的优化点 给楼主几个意见
1、+= 用数组push代替 能提成局部变量的局部变量处理 尤其是像$(".inpbot1").length
2、jq操作元素 看是否有必要每次都要绑定事件
等等吧 能少做的尽量少做
IE:onpropertychange
Firefox:oninput
<script type="text/javascript">
$(document).ready(function() {
var data = {};
$(".inpbot1").each(function (index, obj) {
$(obj).bind("blur", function () {
data[index] = $(this).val();
showResult();
}).bind("keyup", function () {
var v = $(this).val();
$(this).val(v.replace(/[^\d\.]/g, '0'));
});
});//
function showResult() {
var r = 0;
for (var i = 0; i < $(".inpbot1").length; i++) {
if (data[i]) {
r += parseFloat(data[i]);
}
}
$("#labAllResult").html(r);
$.ajax({
type: "GET",
url: "DaXie.ashx",
data: "r=" + r,
success: function (msg) {
$("#Label1").html(msg);
}
});
}
}); </script>这里还有个错误,不讨论鼠标事件 现在就按blur来说 最后的结果也不是要把所有的相加,而是只相加鼠标点过的文本框的值,怎么修改?