如何复制Dropdownlist的值,减去一个值默认为0并计算总和,只需点击Dropdownlist?

问题描述

使用的工具:Asp.net core 5.0、Visual Studio 2019

我想把DropdownList中的值复制到textBox2中,textBox1是数量认为1),
在 textBox3 上是要减去的值(认为 0)和
在 textBox4 上计算总和,只需选择 DropdownList 上的值?
textBox4 = (textBox1 * textBox2) - textBox3;
有没有办法在 C# 或 Javascript 中做到这一点?

这是我正在使用的创建页面

        <div class="form-group" hidden>
            <input asp-for="Rows.Qty" class="form-control" value="1" />
            <span asp-validation-for="Rows.Qty" class="text-danger"></span>
        </div>
        <div class="form-group">
            <select class="form-control" asp-items="ViewBag.Price" id="ReadPrice" name="ReadPrice" >
            </select>
            <input asp-for="Rows.Price" class="form-control font-weight-bold" id="PriceText" name="PriceText" type="text" readonly />
            <span asp-validation-for="Rows.Price" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input asp-for="Rows.Subtract" class="form-control text-danger font-weight-bold" value="0" id="SubtractX" name="SubtractX" type="text" />
            <span asp-validation-for="Rows.Subtract" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input asp-for="Rows.Sum" class="form-control text-success font-weight-bold" id="SumX" name="SumX" type="number" />
            <span asp-validation-for="Rows.Sum" class="text-danger"></span>
        </div>
        <div class="form-group">
            <input type="submit" value="Save" class="btn btn-success" />
            <a asp-page="Index" class="btn btn-secondary ">Back</a>
        </div>
    </form>
</div>

解决方法

这是一个演示(当下拉更改或输入更改或离开输入字段时,它会计算):

ViewBag.Price:

ViewBag.Price = new List<SelectListItem> { new SelectListItem { Text = "100",Value = "1" },new SelectListItem { Text = "200",Value = "2" },new SelectListItem { Text = "300",Value = "3" } };

查看:

<form>
    <div class="form-group">
        <input asp-for="Rows.Qty" class="form-control" value="1" onblur="getSum()"/>
        <span asp-validation-for="Rows.Qty" class="text-danger"></span>
    </div>
    <div class="form-group">
        <select class="form-control" asp-items="ViewBag.Price" id="ReadPrice" name="ReadPrice">
        </select>
        <input asp-for="Rows.Price" class="form-control font-weight-bold" id="PriceText" name="PriceText" type="text" readonly />
        <span asp-validation-for="Rows.Price" class="text-danger"></span>
    </div>
    <div class="form-group">
        <input asp-for="Rows.Subtract" class="form-control text-danger font-weight-bold" value="0" id="SubtractX" name="SubtractX" type="text" onblur="getSum()"/>
        <span asp-validation-for="Rows.Subtract" class="text-danger"></span>
    </div>
    <div class="form-group">
        <input asp-for="Rows.Sum" class="form-control text-success font-weight-bold" id="SumX" name="SumX" type="number" />
        <span asp-validation-for="Rows.Sum" class="text-danger"></span>
    </div>
    <div class="form-group">
        <input type="submit" value="Save" class="btn btn-success" />
        <a class="btn btn-secondary ">Back</a>
    </div>
</form>

js:

 @section scripts{
    <script>
        $(function () {

            $("#PriceText").val($("#ReadPrice").find("option:selected").text());
            getSum();
        })
        $("#ReadPrice").change(function () {

            $("#PriceText").val($("#ReadPrice").find("option:selected").text());
            getSum();
        })
        function getSum() {
            var sum = parseInt($("#Rows_Qty").val()) * parseInt($("#PriceText").val()) - parseInt($("#SubtractX").val())
            $("#SumX").val(sum);
        }
    </script>
    
    }

结果: enter image description here

,

这对我有用: 谢谢“依依你”

<script>
    $(function () {

        $("#PriceText").val($("#ReadPrice").find("option:selected").text());
        getSum();
    })
    $("#ReadPrice").change(function () {

        $("#PriceText").val($("#ReadPrice").find("option:selected").text());
        getSum();
    })
    function getSum() {
        var sum = parseInt($("#Rows_Qty").val()) * parseInt($("#PriceText").val()) - parseInt($("#SubtractX").val())
        $("#SumX").val(sum);
    }
</script>


<script>
    $(function () {
        getSum();
    })
    $("#SubtractX").keyup(function () {
        getSum();
    })
    function getSum() {
        var sum = parseInt($("#Rows_Qty").val()) * parseInt($("#PriceText").val()) - parseInt($("#SubtractX").val())
        $("#SumX").val(sum);
    }
</script>