如何检查用户从下拉列表中选择的任何数字,如果大于Qty,则显示警报

时间:2018-07-03 14:28:15

标签: c# jquery asp.net ajax asp.net-mvc

我有一个输入字段,其中显示了产品的可用性。我还有一个下拉列表,用户可以在其中选择所需数量的产品。当用户点击“提交”按钮时,这两个值都保存到数据库中。

我要检查用户在下拉列表中选择的数量是否大于产品可用性的数量。 如果是这种情况,则在提交时,应该有一个弹出窗口(提示),表明选择无效。

示例:
该产品的可用性是50
从下拉列表中选择的值为53

警报(“您可以选择1-50”)。
任何人都可以帮助我或为我指明正确的方向吗?
提前致谢。

查看:

    @using Namespace.Models
    @model RMAHistory

    //Quantity
    <div class="col-md-3">
    <div class="form-group">
    <label>Quantity </label>
    <input name="Antal" id="Antal" class="form-control border-input disabled" value="@string.Format("{0:N0}", Model.InvoiceDetailsSingelLine.Quantity)">
      </div>
    </div>

    //DropDown
    <div class="col-md-12">
     <div class="form-group">
     <label>Number of returning</label>
    @Html.DropDownListFor(model => model.SelectedRMAAntal, Enumerable.Range(0, 11).Select(x => new SelectListItem { Text = x.ToString() }), "- Select - ", new { @class = "form-control border-input" })
    </div>
     </div>

<button id="btn" type="submit"  class="btn">Send</button>

控制器和RMAHistory ViewModel:

public class RMAHistory
{
    public List<SelectListItem> RMAAntal { set; get; }
    public int? SelectedRMAAntal { set; get; }

    public string AntalRMA { get; set; }
    public string Antal { get; set; }

}


public JsonResult ProcessRequestRMA(RMAHistory model,string SelectedRMAAntal){
    var RMA = new RMA_History
    {

        Antal = model.Antal,
        AntalRMA = SelectedRMAAntal
    };

    db.RMA_History.Add(RMA);
    db.SaveChanges();
    return Json(model, JsonRequestBehavior.AllowGet);
}

JavaScript:

<script>
    $(document).ready(function () {

        $("#btn").click(function (e) {
            e.preventDefault();
            return myfunction();
        });

        function myfunction() {
            var model = {
                Antal: $("#Antal").val(),
                SelectedRMAAntal: $("#SelectedRMAAntal").val()
            }

            $.ajax({
                type: 'POST',
                url: "/Account/ProcessRequestRMA",
                dataType: 'json',
                data: {       
                    Antal: model.Antal,
                    SelectedRMAAntal : model.SelectedRMAAntal

                },

                success: function (status) {
                    if (status) {
                        status.Antal = model.Antal;
                        status.AntalRMA = model.SelectedRMAAntal;
                        console.log("Send");
                    }
                    else {
                        alert("Something Wrong");
                    }
                },
                error: function () {
                    console.log('something went wrong - debug it!');
                }
            });
        }
    });
</script>

1 个答案:

答案 0 :(得分:0)

只需设置范围,以使最大数量是模型中的可用数量

@Html.DropDownListFor(model => model.SelectedRMAAntal, Enumerable.Range(0, Model.InvoiceDetailsSingelLine.Quantity).Select(x => new SelectListItem { Text = x.ToString() }), "- Select - ", new { @class = "form-control border-input" })