簡體   English   中英

根據輸入字段的數值隱藏或顯示不同的 DIV

[英]Hide or show different DIV based on numerical value of input field

我有一個表單,根據 #balance 字段的值,我希望顯示某個 div。 如果#balance 字段是一個大於1 的數字,我想顯示div #moreassets 但如果#balance 字段是負數,我希望它顯示div #moreliabilities。

下面的這個腳本以相同的形式計算前兩個字段的值,但是當我嘗試為 show hide 函數添加更多或單獨或第二個 js 代碼時,我被卡住了。

我嘗試了很多方法,但似乎無法讓它發揮作用。 我不太擅長這種東西,但我假設我的問題可能是我已經在 DOM 中使用了 #balance 或者其他什么東西不能使用相同的東西兩次?

我想知道是否有人可以指出我正確的方向,或者我需要在下面的腳本/代碼中添加什么才能實現這一點?

<label style="margin-top: 20px;">Your Balance: </label>

<input class="form-control text-center balance" id="balance" type="type" name="balance">

<script>
  $(function() {
    $('#assets2, #liabilities').change(function() {
      var yourassets = parseFloat($('#assets2').val()) || 0;
      var yourliabilities = parseFloat($('#liabilities').val()) || 0;
      $('#balance').val(yourassets - yourliabilities);
    });
  });

</script>

<div id="moreliabilities" class="callout">
  <p>Personal liabilities, such as credit cards and loans, can be expensive and you should consider making overpayments before investing.</p>
</div>

<div id="moreassets" class="callout">
  <p>You have more assets than liabilities.</p>
</div>

您可以使用toggle並根據差異值傳遞布爾表達式。 看下面的代碼

 $(function() { $('#assets2, #liabilities').change(function() { var yourassets = parseFloat($('#assets2').val()) || 0; var yourliabilities = parseFloat($('#liabilities').val()) || 0; var diff = yourassets - yourliabilities; $('#balance').val(diff); $('#moreassets').toggle(diff>0); $('#moreliabilities').toggle(diff<0); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input class="form-control text-center" id="assets2" type="type" name="assets2"><br> <input class="form-control text-center" id="liabilities" type="type" name="liabilities"><br> <label style="margin-top: 20px;">Your Balance: </label> <input class="form-control text-center balance" id="balance" type="type" name="balance"> <div id="moreliabilities" class="callout"> <p>Personal liabilities, such as credit cards and loans, can be expensive and you should consider making overpayments before investing.</p> </div> <div id="moreassets" class="callout"> <p>You have more assets than liabilities.</p> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM