是这样的,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">