求助select的onchange和文本框那些事儿 本帖最后由 sqlwhere 于 2012-02-21 23:09:53 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <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("输入错误!");}没调试,大概就是这个意思。 <!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> 简单修改下,支持chrome<!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" /> <script> var sel = document.getElementById('sel'), input = document.getElementById('textbox'); sel.onchange = function(){ input.value = ''; } input.onkeypress = function(event){ if(event && (event.keyCode !== event.which && event.keyCode !== 0 || event.keyCode === 8 || event.keyCode === 13)){ return true; } var e = event || window.event, key = e.which || e.charCode || e.keyCode, str = this.value + String.fromCharCode(key), reg; 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; default: reg = /^\d{14}$/; } if(!reg.test(str)){ return false; } } input.onblur = function(){ if(/\d+\.$/.test(this.value)){ this.value = new Number(this.value).toFixed(2); } } </script></body></html> 3 楼正解, <script>//这个地方最好完善下,不然在浏览器下可能会有问题 <script type="text/javascript"> 为什么取不到子节点 关于treeview的问题,等待各位高手解决 关于codebase=...后面跟的那个cab包的问题 img图像的鼠标拖动平移如何实现? ie6现在的事件模型是怎么样的? JavaScript中能否使用继承机制? 寻求打开“我的电脑”、“回收站”等的写法?高手请进。 如何让层内的文字不自动换行 请教个关于document.getElementById的问题 如何打开一个页面的时候自动点击一个动态生成的链接 JS中事件的几个问题~~~ js里面图片地址问题
<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>
<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>
<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" />
<script>
var sel = document.getElementById('sel'),
input = document.getElementById('textbox');
sel.onchange = function(){
input.value = '';
}
input.onkeypress = function(event){
if(event && (event.keyCode !== event.which && event.keyCode !== 0 || event.keyCode === 8 || event.keyCode === 13)){
return true;
}
var e = event || window.event,
key = e.which || e.charCode || e.keyCode,
str = this.value + String.fromCharCode(key),
reg;
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;
default:
reg = /^\d{14}$/;
}
if(!reg.test(str)){
return false;
}
}
input.onblur = function(){
if(/\d+\.$/.test(this.value)){
this.value = new Number(this.value).toFixed(2);
}
}
</script>
</body>
</html>