请教一个浮点化数值的问题!(高手都来侃侃)(不好意思,我只有10的可用分,明天加)

luxuezhu 2003-06-15 03:37:05
请问:第一个文本框中输入值,怎么才能够让第二个文本框得到的处理后的值也相第一个那样浮点化显示!!!!!!!!!

<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<script language=JavaScript>
// [dFilter] - A Numerical Input Mask for JavaScript
// Written By Dwayne Forehand - March 27th, 2003
// Please reuse & redistribute while keeping this notice.

var dFilterStep

function dFilterStrip (dFilterTemp, dFilterMask)
{
dFilterMask = replace(dFilterMask,'#','');
for (dFilterStep = 0; dFilterStep < dFilterMask.length++; dFilterStep++)
{
dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
}
return dFilterTemp;
}

function dFilterMax (dFilterMask)
{
dFilterTemp = dFilterMask;
for (dFilterStep = 0; dFilterStep < (dFilterMask.length+1); dFilterStep++)
{
if (dFilterMask.charAt(dFilterStep)!='#')
{
dFilterTemp = replace(dFilterTemp,dFilterMask.charAt(dFilterStep),'');
}
}
return dFilterTemp.length;
}

function dFilter (key, textbox, dFilterMask)
{
dFilterNum = dFilterStrip(textbox.value, dFilterMask);

if (key==9)
{
return true;
}
else if (key==8&&dFilterNum.length!=0)
{
dFilterNum = dFilterNum.substring(0,dFilterNum.length-1);
}
else if ( ((key>47&&key<58)||(key>95&&key<106)) && dFilterNum.length<dFilterMax(dFilterMask) )
{
dFilterNum=dFilterNum+String.fromCharCode(key);
}

var dFilterFinal='';
for (dFilterStep = 0; dFilterStep < dFilterMask.length; dFilterStep++)
{
if (dFilterMask.charAt(dFilterStep)=='#')
{
if (dFilterNum.length!=0)
{
dFilterFinal = dFilterFinal + dFilterNum.charAt(0);
dFilterNum = dFilterNum.substring(1,dFilterNum.length);
}
else
{
dFilterFinal = dFilterFinal + "";
}
}
else if (dFilterMask.charAt(dFilterStep)!='#')
{
dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep);
}
// dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
}


textbox.value = dFilterFinal;
return false;
}

function replace(fullString,text,by) {
// Replaces text with by in string
var strLength = fullString.length, txtLength = text.length;
if ((strLength == 0) || (txtLength == 0)) return fullString;

var i = fullString.indexOf(text);
if ((!i) && (text != fullString.substring(0,txtLength))) return fullString;
if (i == -1) return fullString;

var newstr = fullString.substring(0,i) + by;

if (i+txtLength < strLength)
newstr += replace(fullString.substring(i+txtLength,strLength),text,by);

return newstr;
}

</script>
<script language=JavaScript>
function myFilter(k, o) {

if (k==9||k==13||k==144||k==37||k==39||k==67||k==86||k==88||k==190||k==110) {
return true;
}
if (k==8) { // backSpace
return true;
}
else {if (k == 46) { // delete

return true;

}
else {if ((k>47&&k<58)||(k>95&&k<106)) { // digit
var oldV = replace(o.value, ",", "");
if (k<58) {oldV += "" + (k-48);}
else {oldV += "" + (k-96);}
var newV = "";
var i = oldV.lastIndexOf(".");
if (i >= 0) {newV = oldV.substring(i); oldV = oldV.substring(0,i);}
var j = 0;
for (i=oldV.length-1; i>0; i--) {
newV = oldV.charAt(i) + newV;
j++;
if (j==3) {j=0; newV = "," + newV;}
}
if (oldV.length>0) {newV = oldV.charAt(0) + newV;}
o.value = newV;
}
}
}
return false;
}
</script>

输入数字: bb
<input class=inpu type="text" onKeyDown="javascript:return myFilter(event.keyCode, this);" name="lrby_1" size="30" maxlength="20" onpropertyChange='lrqm_2.value=parseFloat(lrby_1.value.replace(/\,/g, ""))+2'>

<input class=inpu type="text" name="lrqm_2" size="30" maxlength="20" readonly >

</body>
</html>
...全文
53 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
luxuezhu 2003-06-17
  • 打赏
  • 举报
回复
up...
jsidiot 2003-06-16
  • 打赏
  • 举报
回复
test
jsidiot 2003-06-16
  • 打赏
  • 举报
回复
<input class=inpu type="text" onKeyDown="javascript:return myFilter(event.keyCode, this);" name="lrby_1" size="30" maxlength="20" onpropertyChange='lrqm_2.value=this.value'>

<input class=inpu type="text" name="lrqm_2" size="30" maxlength="20" readonly >
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
up..
高手都睡着了吗》?
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
top
分数涨了,我也加了
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
to: baisun(蟋蟀)
那我没一个加的变量不同!
那不是要加 N个JS

另外,你帮我看一下上面的一帖!
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
to: baisun(蟋蟀)
你的代码里面如果得到的是一个负数值,就不对了
另外,你帮我看一下这个!
<script language=JavaScript>
function myFilter(k, o) {

if (k==9||k==13||k==144||k==37||k==39||k==67||k==86||k==88||k==190||k==110) {
return true;
}
if (k==8) { // backSpace
return true;
}
else {if (k == 46) { // delete

return true;

}
else {if ((k>47&&k<58)||(k>95&&k<106)) { // digit
var oldV = replace(o.value, ",", "");
if (k<58) {oldV += "" + (k-48);}
else {oldV += "" + (k-96);}
var newV = "";
var i = oldV.lastIndexOf(".");
if (i >= 0) {newV = oldV.substring(i); oldV = oldV.substring(0,i);}
var j = 0;
for (i=oldV.length-1; i>0; i--) {
newV = oldV.charAt(i) + newV;
j++;
if (j==3) {j=0; newV = "," + newV;}
}
if (oldV.length>0) {newV = oldV.charAt(0) + newV;}
o.value = newV;
}
}
}
return false;
}
</script>

怎么能够输入负号 “-”
baisun 2003-06-16
  • 打赏
  • 举报
回复
可变就改成那个变量啊
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
我自己都说迷糊了!
也就是说我在
var oldV = new String(parseFloat(o.value.replace(/\,/g, ""))+2);
|
\/
这里是一个不确定,可变动的值
难道我要定义n个baisun(o,b) ?!
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
这样说吧
第一行: parseFloat(lrby_1.value.replace(/\,/g, ""))+<? echo $row[2];?>
第二行: parseFloat(lrby_2.value.replace(/\,/g, ""))+<? echo $row[3];?>
第三 parseFloat(lrby_3.value.replace(/\,/g, ""))+<? echo $row[4];?>



parseFloat(lrby_i.value.replace(/\,/g, ""))+<? echo $row[i+1];?>
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
啊,高!
可是还有啊,我有很多个类式表格!
而且都要作类式处理!
但是后面 加上 的值其实是这样的
<? echo $row[2];?> <? echo $row[3];?> ......<? echo $row[44];?>
我该怎么处理呢?
baisun 2003-06-16
  • 打赏
  • 举报
回复
...
function baisun(o,b) {
var newV = "";
var oldV = new String(parseFloat(o.value.replace(/\,/g, ""))+2);
var j = 0;

for (i=oldV.length-1; i>0; i--) {
newV = oldV.charAt(i) + newV;
j++;

if (j==3) {j=0; newV = "," + newV;}
}
if (oldV.length>0) {newV = oldV.charAt(0) + newV;}
b.value = newV;

}
</script>
<input class=inpu type="text" onKeyDown="javascript:return myFilter(event.keyCode, this);" name="lrby_1" size="30" maxlength="20" onpropertyChange="baisun(this,lrqm_2);">
luxuezhu 2003-06-16
  • 打赏
  • 举报
回复
to : xiaoshi(java入门中....)(半知不解)
你的方法只能得到第一个值!

我要把lrby_1中输入的数值加上另外的数值(从数据库里面取得)变量,然后在lrqm_2中成浮点数显示。
luxuezhu 2003-06-15
  • 打赏
  • 举报
回复
up一下

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧