是这样的,select下拉框有三个项目,分别是
美金
日元
人民币
当选择"美金"的时候
文本框可以输入的值是14位整数
当选择"日元"的时候
文本框可以输入的值是11位整数2位小数
当选择"人民币"的时候
文本框可以输入的值是9位整数2位小数
并且每次改变选项,之前输入的值要清空的
这个onchange的function要怎么写啊。。。我怎么写都没触发的赶脚。。。。。。
------解决方案--------------------
<select name="selectname" id="selectid" onchange="document.getElementById('inputid').value = ''"></select>
<input name="inputname" id="inputid" onblur=checkvalue(this)>
function checkvalue(o){
selv = document.getElementById('selectid').value;
t1 = "/^\d{1,14}$/";
t2 = "/^\d{1,11}\.\d{1,2}$/";
t3 = "/^\d{1,9}\.\d{1,2}$/";
r = false;
if(selv=="美金")r = t1.test(o.v)
if(selv=="日元")r = t2.test(o.v)
if(selv=="人民币")r = t3.test(o.v)
if(!r)alert("输入错误!");
}
没调试,大概就是这个意思。
------解决方案--------------------
顶帖收藏,就是楼上的这个思路。
------解决方案--------------------
- HTML code
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<select id="sel">
<option value="usd">美金</option>
<option value="yen">日元</option>
<option value="rmb">人民币</option>
</select>
<input id="textbox" type="text" />
<div id="debug"></div>
<script>
var sel = document.getElementById('sel'),
input = document.getElementById('textbox');
sel.onchange = function(){
input.value = '';
}
input.onkeypress = function(event){
var e = event || window.event,
key = e.keyCode || e.which,
str = this.value + String.fromCharCode(key),
reg;
if(e.keyCode !== 0){
return true;
}
switch(sel.value){
case 'usd':
reg = /^\d{0,14}$/;
break;
case 'yen':
reg = /^\d{0,11}(?:\.\d{0,2})?$/;
break;
case 'rmb':
reg = /^\d{0,9}(?:\.\d{0,2})?$/;
break;
}
if(!reg.test(str)){
return false;
}
}
input.onblur = function(){
if(/\.$/.test(this.value)){
this.value += "00";
}
}
</script>
</body>
</html>
------解决方案--------------------
3 楼正解,
<script>//这个地方最好完善下,不然在浏览器下可能会有问题 <script type="text/javascript">