簡體   English   中英

Yii2:基於條件使用JQuery進行計算

[英]Yii2: Calculation using JQuery based on condition

我有一個表單,其ID為

#opdtestbill-health_card_number #opdtestbill-test_charges #opdtestbill-discount #opdtestbill-total_charges

現在我想做的是,當health_card_number不為空時,計算測試費用的折扣。 即是折扣字段,total_charges字段是自動填充的。

test_charges字段通過ajax獲取數據,並且不手動填充。

我已經嘗試過此代碼,但是在折扣和total_charges中都得到了NaN

這是我的代碼:

<?php
$this->registerJs("$('#opdtestbill-health_card_number').blur(function(){
        if( $(this).val() ) {
        var test_charges = parseInt($('#opdtestbill-test_charges').val());
        var discount = (test_charges*5)/100;
        var totalAmount = test_charges - discount;
        $('#opdtestbill-discount').val(discount);
        $('#opdtestbill-total_charges').val(totalAmount);  
         }else{        
        $('#opdtestbill-discount').val()=0; 
         } 
});"); 
?>

我對使用JQuery不太了解,將不勝感激。

我也嘗試過僅使用php來執行此操作,但是它僅在更新時有效,而不在新記錄上有效。 我正在使用的php代碼就像在我的模型中一樣

public function getHealthCardDiscount(){
        $discount=0;
        if (!empty($this->health_card_number)){
        $discount = ($this->test_charges *5)/100;
        }
        return $discount;
    }

並在_form.php中

$model->discount=$model->healthCardDiscount;

$model->total_charges=$model->test_charges - $model->healthCardDiscount;

謝謝。

相關部分的HTML如下所示:

<div class="form-group field-opdtestbill-health_card_number">
<label class="control-label" for="opdtestbill-health_card_number">Health Crd. No.</label>
<input type="text" id="opdtestbill-health_card_number" class="form-control" name="OpdTestBill[health_card_number]" maxlength="15">

<div class="form-group field-opdtestbill-test_charges">
<label class="control-label" for="opdtestbill-test_charges">Test Charges</label>
<input type="text" id="opdtestbill-test_charges" class="form-control" name="OpdTestBill[test_charges]" maxlength="10">

<div class="form-group field-opdtestbill-discount">
<label class="control-label" for="opdtestbill-discount">Disct.</label>
<input type="text" id="opdtestbill-discount" class="form-control" name="OpdTestBill[discount]" maxlength="10">

<div class="form-group field-opdtestbill-total_charges">
<label class="control-label" for="opdtestbill-total_charges">Total Charges</label>
<input type="text" id="opdtestbill-total_charges" class="form-control" name="OpdTestBill[total_charges]" value="0" maxlength="10">

渲染的jQuery

<script type="text/javascript">jQuery(document).ready(function () {
$('#opdtestbill-health_card_number').blur(function(){
        if( $(this).val() ) {
        var test_charges = parseInt($('#opdtestbill-test_charges').val());
        var discount = (test_charges*5)/100;
        var totalAmount = test_charges - discount;
        $('#opdtestbill-discount').val(discount);
        $('#opdtestbill-total_charges').val(totalAmount);  
         }else{        
        $('#opdtestbill-discount').val()=0; 
         } 
});

如果要將字符串轉換為整數,可以這樣使用:

var test = "10";
test = test - 0;

而你在這方面犯了錯誤

$('#opdtestbill-discount').val()=0;

我更改了您的js代碼,請參見http://jsfiddle.net/vitalik74/upLbpnmk/

暫無
暫無

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

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