本帖最后由 sqlwhere 于 2012-02-21 23:09:53 编辑

解决方案 »

  1.   

    <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("输入错误!");
    }
    没调试,大概就是这个意思。
      

  2.   

    <!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.   

    简单修改下,支持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>
      

  4.   

       3 楼正解,  <script>//这个地方最好完善下,不然在浏览器下可能会有问题  <script type="text/javascript">