2相同的javascript不能与jquery手风琴一起运行

时间:2014-01-14 19:07:40

标签: javascript jquery

好的,我这里有一个带有2个标签的Jquery Accordian。

1代表卖家,另一个代表买入。每个人都有自己的输入框组和附加的javascript。

这是购买标签

输入框: -

<tr>
            <td>BUY <input type="text" name="buybtc" id="buybtc" class="validate[required] text-input" placeholder="amount" size="10"> BTC </td>
            <td>At Rate<input type="text" name="rate" id="rate" class="validate[required] text-input" placeholder="rate" size="10">BTC/LTC</td>
            </tr>
            <tr>
            <td>LTC You will give<input type="text" name="giveltc" readonly id="giveltc" size="10"></td>
            </tr>

使用Javascript: -

<script type="text/javascript">
        window.onload = function(){
        var buybtc = document.getElementById('buybtc'), //get the amount BTC to be sold 
        giveltc = document.getElementById('giveltc'),
        rate = document.getElementById('rate');

        var constantNumber = 0.022632;

        rate.onkeyup = function () {
        var result = parseFloat(buybtc.value) * parseFloat(rate.value);
        giveltc.value = !isNaN(result) ? result : '';
            };
        }

        //sellbtc = buybtc
        //getltc = giveltc
        </script>

卖出标签: -

输入框

<tr>
  <td>Sell <input type="text" name="sellbtc" id="sellbtc" class="validate[required] text-input" placeholder="amount"> BTC </td>
  <td>At Rate<input type="text" name="rates" id="rates" class="validate[required] text-input" placeholder="rate">LTC/BTC</td>
  </tr>
  <tr>
  <td>LTC You will get<input type="text" name="getltc" readonly id="getltc"></td>
  </tr>

Javascript: -

<script type="text/javascript">
        window.onload = function(){
        var sellbtc = document.getElementById('sellbtc'), //get the amount BTC to be sold 
        getltc = document.getElementById('getltc'),
        rate = document.getElementById('rate');

        var constantNumber = 0.022632;

        rate.onkeyup = function () {
        var result = parseFloat(sellbtc.value) * parseFloat(rate.value);
        getltc.value = !isNaN(result) ? result : '';
            };
        }
        </script>

这两个脚本的工作是根据主要数量和费率来计算总金额。问题是,当我在中只添加1个javascript 时页面(对于购买选项卡)..一切正常..它,金额是在第三个框中计算的。但是,我将javascript放入买入标签的那一刻......两个javascripts停止工作,这意味着最终金额不会在任何这些标签中计算。

我应该如何解决这个问题? 感谢。


更新: -

    <script type="text/javascript">
        window.onload = function(){
          var sellbtc = document.getElementById('sellbtc'), //get the amount BTC to be sold 
          getltc = document.getElementById('getltc'),
          rate = document.getElementById('rate');

          var constantNumber = 0.022632;

          rate.onkeyup = function () {
            var result = parseFloat(sellbtc.value) * parseFloat(rate.value);
            getltc.value = !isNaN(result) ? result : '';
            };
        }
        </script>
        <script type="text/javascript">
        window.onload = function(){
          var buybtc = document.getElementById('buybtc'), //get the amount BTC to be sold 
          giveltc = document.getElementById('giveltc'),
          rateSell = document.getElementById('rateSell');

          var constantNumber = 0.022632;

          rate.onkeyup = function () {
            var resultSell = parseFloat(buybtc.value) * parseFloat(rateSell.value);
            giveltc.value = !isNaN(resultSell) ? resultSell : '';
            };
        }

        //sellbtc = buybtc
        //getltc = giveltc
        </script>

<div id="accordion">
          <h3>Buy</h3>
          <div>
            <p>

            <form action="tradehandler.php?action=buy" method="post" id="formID">
            <table>
            <tr>
            <td>BUY <input type="text" name="buybtc" id="buybtc" class="validate[required] text-input" placeholder="amount" size="10"> BTC </td>
            <td>At Rate<input type="text" name="rateSell" id="rateSell" class="validate[required] text-input" placeholder="rate" size="10">BTC/LTC</td>
            </tr>
            <tr>
            <td>LTC You will give<input type="text" name="giveltc" readonly id="giveltc" size="10"></td>
            </tr>

            <tr>
            <td><input type="submit" name="submit"></td>
            </tr>
            </table>
            </form>
            </p>
          </div>
          <h3>Sell</h3>
          <div>
            <p>

            <form action="tradehandler.php?action=sell" method="post" id="formID">
  <table>
  <tr>
  <td>Sell <input type="text" name="sellbtc" id="sellbtc" class="validate[required] text-input" placeholder="amount"> BTC </td>
  <td>At Rate<input type="text" name="rate" id="rate" class="validate[required] text-input" placeholder="rate">LTC/BTC</td>
  </tr>
  <tr>
  <td>LTC You will get<input type="text" name="getltc" readonly id="getltc"></td>
  </tr>

  <tr>
  <td><input type="submit" name="submit"></td>
  </tr>
  </table>
  </form>
            </p>
          </div>
</div>

1 个答案:

答案 0 :(得分:0)

这项工作仅适用于销售div

 <script type="text/javascript">
            window.onload = function(){
            setAccordion('sellbtc','getltc','rates');
                };
            }
    function setAccordion(btc,ltc,rate)
    {
    var sellbtc = document.getElementById(btc), //get the amount BTC to be sold 
            getltc = document.getElementById(ltc),
            rateVar = document.getElementById(rate);

            var constantNumber = 0.022632;

            rateVar.onkeyup = function () {
            var result = parseFloat(sellbtc.value) * parseFloat(rate.value);
            getltc.value = !isNaN(result) ? result : '';
    }
            </script>

如果它们位于同一页面上,您必须更改SELL div中的费率ID和ltc 并像这样更改脚本:

  <script type="text/javascript">
            window.onload = function(){
            setAccordion('buybtc','getltc','rates');
setAccordion('sellbtc','SELLgetltc','SELLrates');
                };
            }
    function setAccordion(btc,ltc,rate)
    {
    var sellbtc = document.getElementById(btc), //get the amount BTC to be sold 
            getltc = document.getElementById(ltc),
            rateVar = document.getElementById(rate);

            var constantNumber = 0.022632;

            rateVar.onkeyup = function () {
            var result = parseFloat(sellbtc.value) * parseFloat(rate.value);
            getltc.value = !isNaN(result) ? result : '';
    }
            </script>