当前位置:编程学习 > C#/ASP.NET >>

编写网页时遇到的问题,求高手花一两分钟替我看看

小弟最近做网站遇到一个技术问题特向诸位大神神请教,网站页面大体如下图,黄色为input,要求输入每次购货物的种类,数量,和总价。输入数据分三列显示,输入数据的条数C#里定义LINES来确定,所以做画面时,用了for的i<LINES/3来画,输入数据的数量过大,所以没有定义每一个输入框以及单选按钮的id。下面是问题,如何通过编写js代码,让上面每输入一条数据,下面蓝色的数据自动跟着累加显示。这个问题纠结了很好几天,给点提示或者类似代码也好。 --------------------编程问答-------------------- 1. 写一个合计的功能
2、把合计的结果放到总数量
上面都是比较容易的js代码
3、当任何一个单项有变化的时候, 要触发事件来执行1-2 功能
javascript没有textchanged 事件,要自己写一个jQuery扩展。 
下面是我以前用的
http://rayaspnet.blogspot.com/2011/01/how-to-implement-textchanged-event.html --------------------编程问答-------------------- 没看明白,但是大致的概念是这样,如果你想是很多input输入改变时,触发另一个input中的变化的话,可以通过绑定change事件(改变了文本框中的内容,且鼠标离开文本框时触发)举个例子我想在希望text1,text2两个文本框改变内容text3都能改变可以这样做
<input type="text1" class="item" id="text1"/>
<input type="text2" class="item" id="text2"/>
<input type="text3" class="item" id="text3"/>

var input1 = document.getElementById('text1')
var input2 = document.getElementById('text2')
var input3 = document.getElementById('text3')
function add(){
   input3.value = parseFloat(input1.value) + parseFloat(input2.value);
}
input1.onchange = add;
input2.onchange = add;

就这样了,然后如果你希望是按下数字就改变的话,那把上面onchange换成onkeyup
最后如果真的要项目中的话,还要做很多验证,对各种输入做验证
--------------------编程问答--------------------
引用 2 楼 fuyun2000 的回复:
然后如果你希望是按下数字就改变的话,那把上面onchange换成onkeyup

如果用鼠标右键来复制,粘贴,删除?怎么触发事件 --------------------编程问答--------------------
引用 3 楼 rayaspnet 的回复:
引用 2 楼 fuyun2000 的回复:然后如果你希望是按下数字就改变的话,那把上面onchange换成onkeyup
如果用鼠标右键来复制,粘贴,删除?怎么触发事件

那就捕捉鼠标事件 --------------------编程问答--------------------
引用 3 楼 rayaspnet 的回复:
引用 2 楼 fuyun2000 的回复:
然后如果你希望是按下数字就改变的话,那把上面onchange换成onkeyup
如果用鼠标右键来复制,粘贴,删除?怎么触发事件


按下鼠标右键会弹出上下文菜单,会显示出删除,复制等选项会触发contextmenu事件,你可以为该事件指定事件处理程序 --------------------编程问答--------------------
引用 楼主 CodingCowBoy 的回复:
如何通过编写js代码,让上面每输入一条数据

确定输入一条数据的时候(最后一条语句执行完),你的程序可以调用一下“读取合计”的功能。 --------------------编程问答--------------------
引用 4 楼 fuyun2000 的回复:
引用 3 楼 rayaspnet 的回复:引用 2 楼 fuyun2000 的回复:然后如果你希望是按下数字就改变的话,那把上面onchange换成onkeyup
如果用鼠标右键来复制,粘贴,删除?怎么触发事件
那就捕捉鼠标事件

我的意思是, 在桌面应用程序(windows form),有一个textchanged事件, 可以响应键盘和鼠标的编辑。但是在js里面你要用多个事件(onchange/blur/keypress..)来处理textchanged.
最后用JQUERY 扩展来做一个能同时响应键盘和鼠标的textchanged 事件。

不做也可以、,只是代码有点多 --------------------编程问答-------------------- 哪有那么绕圈子? --------------------编程问答-------------------- 嗯, 类似的代码重复来重复去, 那不绕圈子。
--------------------编程问答-------------------- “通过编写js代码,让上面每输入一条数据,下面蓝色的数据自动跟着累加显示”

这是lz自己的业务逻辑。扯什么TextChanged之类的事件,认识不到“绕圈子”,是需要骂的! --------------------编程问答-------------------- 编程当然是越少写代码越好,越直接了当越好。你扪心自问,你是怎样实现“输入一条数据”的?那么此时就调用一下“读取合计数”方法就好了。编程的目的不是无头苍蝇一样地显示你的“技巧”,而是尽量使用“眼前看来最简单”的方法来迅速实现功能。 --------------------编程问答-------------------- 或者这样说吧,假设我们把页面导航到其它页面,你“输入的数据”还有么?如果没有了,那么你缺乏“输入数据”的基本设计。还没有搞懂如何保存输入的数据的技术,就来搞合计,这就是本末倒置了。不理解如何做数据保存、数据验证等等功能的情况下,过早地考虑了你没有能力考虑的功能。 --------------------编程问答--------------------
引用 10 楼 sp1234 的回复:
“通过编写js代码,让上面每输入一条数据,下面蓝色的数据自动跟着累加显示”

这是lz自己的业务逻辑。扯什么TextChanged之类的事件,认识不到“绕圈子”,是需要骂的!

你说话干净一点! 不管谁问题, 谁回答问题。 都要尊重对方, 你愿意回答就回答, 不愿意回答就一边凉快去。
板一脸, 有什么好装的? --------------------编程问答--------------------
引用 12 楼 sp1234 的回复:
或者这样说吧,假设我们把页面导航到其它页面,你“输入的数据”还有么?如果没有了,那么你缺乏“输入数据”的基本设计。还没有搞懂如何保存输入的数据的技术,就来搞合计,这就是本末倒置了。不理解如何做数据保存、数据验证等等功能的情况下,过早地考虑了你没有能力考虑的功能。
大家不要吵哈,我需要的是文本框里输入数据,在没有触发button的情况下,下面合计会自动累加,这部分当然在js里做,这样看合计更加直观,全部输完之后点button数据会存入数据库的。(不要问我为什么这样做,我也很想问客户为什么这样做),主要问题是输入的文本框数量不确定,要从model里传到View上,所以写的时候用for循环没有绑定input的id,想知道这种情况如何写js,问题还包括有一个关于货物种类的判断再合计。若是高手,请不烦赐教!!! --------------------编程问答--------------------
引用 7 楼 rayaspnet 的回复:
引用 4 楼 fuyun2000 的回复:引用 3 楼 rayaspnet 的回复:引用 2 楼 fuyun2000 的回复:然后如果你希望是按下数字就改变的话,那把上面onchange换成onkeyup
如果用鼠标右键来复制,粘贴,删除?怎么触发事件
那就捕捉鼠标事件
我的意思是, 在桌面应用程序(windows form),有一个textchanged事件, 可……
大家不要吵哈,我需要的是文本框里输入数据,在没有触发button的情况下,下面合计会自动累加,这部分当然在js里做,这样看合计更加直观,全部输完之后点button数据会存入数据库的。(不要问我为什么这样做,我也很想问客户为什么这样做),主要问题是输入的文本框数量不确定,要从model里传到View上,所以写的时候用for循环没有绑定input的id,想知道这种情况如何写js,问题还包括有一个关于货物种类的判断再合计。若是高手,请不烦赐教!!! --------------------编程问答-------------------- 我的输入一条数据的意思是,每输入一个文本框之后,点外面的页面,下面的合计都会发生变化! --------------------编程问答-------------------- 用onblur事件配合js,如果有需要的可以再加上AJAX就行啦 --------------------编程问答--------------------
引用 17 楼 Junior_yuan 的回复:
用onblur事件配合js,如果有需要的可以再加上AJAX就行啦

这个正解  
用change不能解决问题    失去焦点 就触发一下合计函数 来一次遍历DOM文档获得input的表单value值 --------------------编程问答--------------------
引用 15 楼 CodingCowBoy 的回复:
引用 7 楼 rayaspnet 的回复:引用 4 楼 fuyun2000 的回复:引用 3 楼 rayaspnet 的回复:引用 2 楼 fuyun2000 的回复:然后如果你希望是按下数字就改变的话,那把上面onchange换成onkeyup
如果用鼠标右键来复制,粘贴,删除?怎么触发事件
那就捕捉鼠标事件
我的意思是, 在桌面应用程序(windows form……

不用指定ID标签  用name属性来得到value就可以。 --------------------编程问答-------------------- A货?B货?做高仿的么? --------------------编程问答-------------------- 要是我的话,一般都用jquery 插件去做,不用写太多什么代码

http://trirand.com/blog/jqgrid/jqgrid.html# --------------------编程问答-------------------- 对每个黄色的文本框设立两个事件:获取焦点事件和离开焦点事件。获取焦点时,获取所对应的是A货还是B货,var AorB=...;并获取当前文本框的值var value=...;,离开焦点时,也获取A货B货和值,最后根据前后获取的数据,来改变蓝色文本框的数据 --------------------编程问答-------------------- 建议楼主自己好好学习一下javascript和jquery,类似的项目我几年前做过,客户要一个类似于excel表格一样的录入和编辑程序,可以批量录入和修改,能够增加行、删除行、增加列、删除列,录入和修改时如果该行的主关键字和其它行相同还需要进行提醒等等,另外在某一单元格的值被修改后还需要在单元格中加上鲜明标识(我将单元格边框设为红色),整个页面几乎全是脚本,仅仅这一个页面,从开发到完善这些脚本耗费了整整三四天的时间,所以楼主这样的问题别人很可能无法给出更详细的例子,因为写这样的例子得花费很多时间,另外即使有这样的例子,如果对javascript不太熟悉的话,要修改以适合自己需求也是很困难的。至于楼主所说的引发计算的事件,应该是onchange而不是onblur,onblue是失去焦点时引发,不管有没有修改单元格的内容,单元格失去焦点都会引发这个事件,这是没有必要的,onchange和onblur的功能类似,但只有在当前对象的值改变之后才引发。

=======================
http://www.webdiyer.com --------------------编程问答-------------------- 用jquery来实现应该是最方便的吧

LZ写一个函数,一下子把A,B的数量   价格都统计出来
这个方式在改变单选按钮,改变数量  价格输入框的时候都触发他  这样应该是最方便的
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,