在jsp中实现触发现象。(急) 在一个a文本框中输入某个数字另一个b文本框中对应的出现一个数字(这个数字是a中的数字乘以一个变量)即要求在宜文本框中输入内容,另一文本框的值随之变化! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 onpropertychange事件,文本改变时出发。 <textarea rows="10" cols="10" onpropertychange="ale()"> abc </textarea> function ale(){ alert("abc"); } 这个有很多总方法啦.onChange(),onpropertychange很多事件都可以实现的啦.只要在a文本框中输入某个数字,就触发一个事件,这个事件可以通过javascript改变b文本框中的值. <html> <head> <title>测试</title> <script type="text/javascript"> function change(thisElement) { var value = thisElement.value; var targetElement = document.getElementById('b'); if(!value.match(/^-?\d+$/)) { thisElement.value = value.substr(0, value.length - 1); return ; } if(value.match(/^\s*$/)) { targetElement.value = ""; return ; } if(targetElement.value != value) { var numberValue = new Number(value); var tmp = 30; var result = tmp * numberValue; targetElement.value = result; } } </script> </head> <body> <input type="text" name="a" id="a" onkeyup="change(this);" /> <input type="text" name="b" id="b" /> </body></html> 或者这样也可以document.getElementByTagName("textarea")[0].onkeypress=function(e){e=e || window.event;} <input>的onkeypress,onblure,onchange都可以实现 onkeypress,onblure,onchange都应该可以实现,关键是JS方法 onblur, onchange不能解决问题, 要求的是内容联动, 这两个都需要对象失去焦点之后才能触发. onkeypress事件触发的时候, 你输入的这个字符还没有追加到input对象的value后面, 所以也不可以. 没有中文问题, 是键盘抬起的事件, 判断a和b的内容是否一样再处理的另外, 楼主要求值和一个数值运算, 所以, 上面的代码那个a输入框只接受整数. 两个失去焦点那你写个按钮不就完了,用blur()让他们失去焦点不就完了 TKS 各位的回覆!<html> <head> <title>测试</title> <script type="text/javascript"> function change(thisElement) { var value = thisElement.value; var targetElementb = document.getElementById('mcc2price'); var targetElementc = document.getElementById('mcc1price'); var targetElementd = document.getElementById('factoryprice'); if(targetElementb.value != value) { var numberValue = new Number(value); var tmp = document.getElementById('mcc1').value; var result = tmp * numberValue; targetElementb.value = result; } if(targetElementc.value != value) { var numberValue = new Number(value); var tmp = document.getElementById('mcc2').value; var result = tmp * numberValue; targetElementc.value = result; } if(targetElementd.value != value) { var numberValue = new Number(value); var tmp = document.getElementById('fact').value; var result = tmp * numberValue; targetElementd.value = result; } } </script> </head> <body> <input type="text" name="a" id="a" dir="rtl" onkeyup="change(this);" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}if(this.value==''||this.value=='0'){this.value='0';this.style.color='gray';} " style="color:gray" value="0" onfocus="if(this.value=='0'){this.value=''};this.style.color='black';"/> <input type="text" name="mcc2price" id="mcc2price" dir="rtl" /> <input type="text" name="mcc1price" id="mcc1price" dir="rtl"/> <input type="text" name="factoryprice" id="factoryprice" dir="rtl"/> <input type="hidden" value="0.6" id="mcc1" name="mcc1"> <input type="hidden" value="0.7" id="mcc2" name="mcc2"> <input type="hidden" value="0.52" id="fact" name="fact"> </body></html>但当输入的内容是某些带小数点的数字时,其他文本框中得到的内容有很多小数点,请问这个有没有好方法解决! onpropertychange 事件 js 问题 又来晚了,问题又被解决了。text的属性有很多可以起到及时的效果的 怎么在jsp页面显示数据库中两张表的数据 这个统计效果该如何设计? localhost 127.0.0.1有区别吗?? 用jspSmartUpload组件实现文件下载报错,请大家帮忙看看!(不知道错在哪里,头发都白了) <jsp:forward page= ... > 的小问题,高手指点 自定义表单资料 连接提示问题 jsp 如何吊ejb 200分求javamail完整例子,MVC模式 帮帮忙,关于分割字符串后的赋值 元素据是什么阿 灵异的Extjs json 数据解析
abc
</textarea> function ale(){
alert("abc");
}
onChange(),onpropertychange很多事件都可以实现的啦.
只要在a文本框中输入某个数字,就触发一个事件,
这个事件可以通过javascript改变b文本框中的值.
<head>
<title>测试</title>
<script type="text/javascript">
function change(thisElement) {
var value = thisElement.value;
var targetElement = document.getElementById('b');
if(!value.match(/^-?\d+$/)) {
thisElement.value = value.substr(0, value.length - 1);
return ;
}
if(value.match(/^\s*$/)) {
targetElement.value = "";
return ;
}
if(targetElement.value != value) {
var numberValue = new Number(value);
var tmp = 30;
var result = tmp * numberValue;
targetElement.value = result;
}
}
</script>
</head>
<body>
<input type="text" name="a" id="a" onkeyup="change(this);" />
<input type="text" name="b" id="b" />
</body>
</html>
document.getElementByTagName("textarea")[0].onkeypress=function(e){
e=e || window.event;
}
onblur, onchange不能解决问题, 要求的是内容联动, 这两个都需要对象失去焦点之后才能触发.
onkeypress事件触发的时候, 你输入的这个字符还没有追加到input对象的value后面, 所以也不可以.
没有中文问题, 是键盘抬起的事件, 判断a和b的内容是否一样再处理的另外, 楼主要求值和一个数值运算, 所以, 上面的代码那个a输入框只接受整数.
两个失去焦点那你写个按钮不就完了,用blur()让他们失去焦点不就完了
<head>
<title>测试</title>
<script type="text/javascript">
function change(thisElement) {
var value = thisElement.value;
var targetElementb = document.getElementById('mcc2price');
var targetElementc = document.getElementById('mcc1price');
var targetElementd = document.getElementById('factoryprice');
if(targetElementb.value != value) {
var numberValue = new Number(value);
var tmp = document.getElementById('mcc1').value;
var result = tmp * numberValue;
targetElementb.value = result;
}
if(targetElementc.value != value) {
var numberValue = new Number(value);
var tmp = document.getElementById('mcc2').value;
var result = tmp * numberValue;
targetElementc.value = result;
}
if(targetElementd.value != value) {
var numberValue = new Number(value);
var tmp = document.getElementById('fact').value;
var result = tmp * numberValue;
targetElementd.value = result;
}
}
</script>
</head>
<body>
<input type="text" name="a" id="a" dir="rtl" onkeyup="change(this);" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}if(this.value==''||this.value=='0'){this.value='0';this.style.color='gray';} " style="color:gray" value="0" onfocus="if(this.value=='0'){this.value=''};this.style.color='black';"/>
<input type="text" name="mcc2price" id="mcc2price" dir="rtl" />
<input type="text" name="mcc1price" id="mcc1price" dir="rtl"/>
<input type="text" name="factoryprice" id="factoryprice" dir="rtl"/> <input type="hidden" value="0.6" id="mcc1" name="mcc1">
<input type="hidden" value="0.7" id="mcc2" name="mcc2">
<input type="hidden" value="0.52" id="fact" name="fact">
</body>
</html>但当输入的内容是某些带小数点的数字时,
其他文本框中得到的内容有很多小数点,
请问这个有没有好方法解决!