在一个a文本框中输入某个数字
另一个b文本框中对应的出现一个数字
(这个数字是a中的数字乘以一个变量)即要求在宜文本框中输入内容,另一文本框的值随之变化!

解决方案 »

  1.   

    onpropertychange事件,文本改变时出发。
      

  2.   

        <textarea rows="10" cols="10" onpropertychange="ale()">
            abc
        </textarea>    function ale(){
            alert("abc");
        }
      

  3.   

    这个有很多总方法啦.
    onChange(),onpropertychange很多事件都可以实现的啦.
    只要在a文本框中输入某个数字,就触发一个事件,
    这个事件可以通过javascript改变b文本框中的值.
      

  4.   

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

  5.   

    或者这样也可以
    document.getElementByTagName("textarea")[0].onkeypress=function(e){
    e=e || window.event;
    }
      

  6.   

    <input>的onkeypress,onblure,onchange都可以实现
      

  7.   

    onkeypress,onblure,onchange都应该可以实现,关键是JS方法
      

  8.   


    onblur, onchange不能解决问题, 要求的是内容联动, 这两个都需要对象失去焦点之后才能触发.
      

  9.   


    onkeypress事件触发的时候, 你输入的这个字符还没有追加到input对象的value后面, 所以也不可以.
      

  10.   


    没有中文问题, 是键盘抬起的事件, 判断a和b的内容是否一样再处理的另外, 楼主要求值和一个数值运算, 所以, 上面的代码那个a输入框只接受整数.
      

  11.   


    两个失去焦点那你写个按钮不就完了,用blur()让他们失去焦点不就完了
      

  12.   

    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>但当输入的内容是某些带小数点的数字时,
    其他文本框中得到的内容有很多小数点,
    请问这个有没有好方法解决!
      

  13.   

    onpropertychange 事件  js 问题
      

  14.   

    又来晚了,问题又被解决了。text的属性有很多可以起到及时的效果的