在按钮单击文本框值是空的使用 asp.net mvc 显示警报?

Posted

技术标签:

【中文标题】在按钮单击文本框值是空的使用 asp.net mvc 显示警报?【英文标题】:On button Click if texbox value is empty show alert using asp.net mvc? 【发布时间】:2018-05-11 11:42:15 【问题描述】:

在按钮btnClick 点击我想提醒用户如果他们提交带有空MedicineName 文本字段的表单。如果MedicineName texbox 值为空意味着弹出不隐藏。

在我的代码中,按钮单击警报消息显示同时弹出也正在加载

$("#btnClick").click(function () 
                var id = jQuery('[id$=hfCustomer]').val();
                if (id == '') 
                    alert('MedicineNameis empty');
                    $("#upload3Modal").hide();
                
                else 
                    $.get("GenericName_Bind",  ProductID: id , function (data) 
                        $.each(data, function (i, v1) 
                            var GenID = v1.Value;
                            if (GenID) 
                                $('#hdnGenericID').val(GenID);
                            
                            $('#txtGenericName').val(v1.Text);
                        );

                    );
                

            );

html

<div class="col-lg-4">
                            <fieldset class="form-group">
                                <label class="form-label" for="exampleInput">MedicineName</label>
                                @*@Html.TextBoxFor(model => Model.MedicineName, new  @class = "form-control", @id = "txtMedicineName", placeholder = "MedicineName" )*@
                                <div class="typeahead-container">
                                    <div class="typeahead-field">
                                        <span class="typeahead-query">
                                            @Html.TextBoxFor(model => Model.prescriptionmanagement.MedicineName, new  @class = "form-control", @id = "txtMedicineName", placeholder = "Medicine Name", name = "d", type = "search", autocomplete = "off" )
                                            <input type="hidden" id="hfCustomer" name="CustomerId" />
                                        </span>
                                    </div>
                                </div>
                                @Html.ValidationMessageFor(model => Model.prescriptionmanagement.MedicineName, null, new  @style = "color: red" )
                            </fieldset>
                        </div>
                        <div class="col-lg-4">
                            <fieldset class="form-group">
                                <label class="form-label" for="exampleInput">Drug Specifications</label>
                                <div class="tbl-cell tbl-cell-action button">
                                    <a href="#" data-toggle="modal" id="btnClick" data-target="#upload3Modal" class="btn btn-rounded btn-block">Drug Specifications&nbsp;&nbsp;<span class="font-icon-search"></span></a>
                                </div>
                            </fieldset>
                        </div>

【问题讨论】:

您为什么不通过向您的属性添加[Required] 属性并包括@Html.ValidationMessageFor() 来执行此操作,以便您获得开箱即用的客户端和服务器端验证 ValidationMessageFor 在我单击 id="btnClick" 时工作正常,弹出窗口加载了空文本框@StephenMuecke 如果它工作正常,那么你到底为什么需要一个弹出窗口 - 错误消息将显示在你的 ValidationMessageFor() 占位符中(很明显它不工作正常. 你处理表单的.submit() 事件并测试$(this).valid() 的值,如果不是则取消ajax 调用 好的先生,非常感谢@StephenMuecke 而且您甚至没有显示以id 开头的html for and 元素hfCustomer 【参考方案1】:

尝试模态隐藏完成功能

引导程序 3

$('#upload3Modal').on('hidden.bs.modal', function () 
    alert('MedicineNameis empty')
)

引导程序 2.3.2

$('#upload3Modal').on('hidden', function () 
     alert('MedicineNameis empty')
)

参考

https://getbootstrap.com/docs/3.3/javascript/

https://getbootstrap.com/2.3.2/javascript.html#modals

【讨论】:

把它放在你的 if (id == '') 块中

以上是关于在按钮单击文本框值是空的使用 asp.net mvc 显示警报?的主要内容,如果未能解决你的问题,请参考以下文章

发生带有 Jquery 对话框的邮箱时,asp.net 文本框值为空

如何在 asp.net 代码中获取引导文本框值并在存储过程中作为参数发送?

Kendo UI:在按钮单击时获取文本框值

ASP.NET MVC 敲除绑定不起作用

在 ASP.NET MVC5 中使用文本框值添加更多日期时间值

如何使用javascript在asp.net中gridview内的按钮单击上应用文本框空白验证?