当前位置: 首页 > 面试题库 >

必需的字段验证在JQuery Popup MVC 4中不起作用

笪波鸿
2023-03-14
问题内容

我有JQuery弹出窗口,我想在其上进行所需的字段验证,为此,我在模型中设置了所需的属性,并且还在视图中为其设置了验证消息,但是所需的字段验证不适用于弹出窗口。必需的字段验证在JQuery
Popups之外的其他窗体上都可以正常工作....请指导我该怎么做才能解决此问题…以下是我的代码。

模型

[Display(Name = "Material Code")]
[Required(ErrorMessage = "*")]
public string MaterialCode { get; set; }

视图

<li>
    @Html.LabelFor(m => m.MaterialCode)
    @Html.TextBoxFor(m => m.MaterialCode)
    @Html.HiddenFor(m => m.MaterialCodeId)
</li>

以下是我的编码打开一个JQuery弹出窗口。

$('#btnAddCharge').on('click', function (event) {  
        event.preventDefault();
        var actionURL = '@Url.Action("Edit", "Charges", new { Id = 0, @ticketId = @TicketId, UserId = UserId })';

        $(dialogBox).dialog({
            autoOpen: false,
            resizable: false,
            title: 'Edit',
            modal: true,
            show: "blind",
            width: 'auto',
            hide: "blind",
            open: function (event, ui) {
                $(this).load(actionURL, function (html) {
                    $('form', html).submit(function () {
                        $.ajax({
                            url: this.action,
                            type: this.method,
                            data: $(this).serialize(),
                            success: function (res) {
                                if (res.success) {
                                    $(dialogBox).dialog('close');
                                }
                            }
                        });
                        return false;
                    });
                });
            }
        });

        $(dialogBox).dialog('open');
    });

问题答案:

最初加载页面时将解析验证器。添加动态内容时,您需要重新解析验证器。加载内容后,修改脚本以包括以下几行

$(this).load(actionURL, function (html) {
    // Reparse the validator
    var form = $('form');
    form.data('validator', null);
    $.validator.unobtrusive.parse(form);
    $('form', html).submit(function () {
        ....

旁注:您显示的代码不包括在内,@Html.ValidationMessageFor(m => m.MaterialCode)但我认为已包括在内。



 类似资料:
  • 问题内容: 我正在尝试按照AngularJS示例对所需字段进行内联验证。但是,当使用a时,它似乎对我不起作用。 JSFiddle 知道我做错了什么或我可以做些什么来解决吗? 问题答案: 不幸的是,您不能那样做。输入元素不喜欢动态生成名称。您将需要使用ng- form作为子表单并包装重复的元素。这是您的小提琴的叉子:http : //jsfiddle.net/p26VQ/

  • 问题内容: 我尝试使用以下代码将必填字段告知必填字段,但在Safari浏览器中不起作用。码: 上面的代码在firefox中工作。 您可以让我知道JavaScript代码或任何workarround吗? 是javascript新功能 谢谢 问题答案: Safari(自2017年3月26日起最新版本10.1)不支持此属性,您需要使用JavaScript。 该页面包含一个hacky解决方案,该解决方案应

  • 我刚接触spring,我使用《spring in action 5》一书对其进行了探索。我对我的网站做了类似的操作,我已经为页面编写了2个控制器和2个html文件。第一页是比萨饼制作表单。第二个是订单提交。我的控制器代码实际上与书中的相同。在我开始验证表单输入之前,一切都很顺利。我做了比萨饼、订购课程和控制器所需的一切。 订单类: 比萨饼类: 披萨制作控制器: 表单提交控制器: 问题在于验证比萨饼

  • 我在Angular中有一个自定义验证的表单构建器,但我在自定义验证中读取文件后无法获取文件的类型。 下面是StackBlitz: https://stackblitz.com/edit/Angular-ivy-atwqqc?file=src%2fapp%2fapp.component.ts TS文件

  • 我是angular 5的新用户,在这里我试图根据一些条件来验证用户密码。 < li >最少六个字符,至少一个字母和一个数字 < li >最少八个字符,至少一个字母、一个数字和一个特殊字符 < li >最少八个字符,至少一个大写字母、一个小写字母和一个数字 用户可以为密码字段选择上述模式之一,验证错误消息将相应地更改。 对我来说,上述条件都不能正常工作。 有人能帮我解答一下吗? 注意:如果我直接用超

  • 我有一个jsf表单,它包括p: autoCompelete字段。给你; 表单中有3个验证。它们是“必需=真”。此外,它们位于p:自动完成字段中。 所以,问题是,当我在没有输入的情况下单击“保存按钮”时,验证工作正常。然而,当我只在一个p:autocomplete字段中输入,然后单击“保存”按钮时,primefaces验证不起作用,我得到了java错误。我的意思是,由于另外两个必填字段为空,我希望得