【问题标题】:Razor Pages textarea input just grows and grows when other input validations fail validation当其他输入验证验证失败时,Razor Pages textarea 输入只会增长和增长
【发布时间】:2022-01-12 23:24:52
【问题描述】:

我正在使用 asp.net core 和 razor 页面。我有一个简单的表单页面,其中包含几个文本框,然后是 1 个文本区域。如果链接到 textarea 的模型对象变量通过了验证,但说其他文本框中的 1 个验证失败,那么在页面返回后,我的 textarea 中的值会根据先前的值增长。因此,例如,如果 textarea 包含“abc,xyz”,那么在页面从页面上另一个常规文本框的验证失败返回后会发生什么,那么 textarea 会增长到“abc,xyzabc,xyz”

我只有一个简单的文本区域

<textarea class="form-control" asp-for="MyObject.EmailsList" rows="3" placeholder="Multiple addresses need to be seperated by a semi-colon ;"></textarea>

我调试并验证了 MyObject.EmailsList 仅包含“abc,xyz”,因为其他一些文本框验证失败,每次页面返回时。所以我在摸不着头脑,为什么这个 textarea 没有自行清除并正确加载值??

【问题讨论】:

    标签: asp.net-core razor razor-pages


    【解决方案1】:

    当你有一个输入框验证错误,你想在你的textarea上加倍给定的值,你可以参考这个demo:

    型号:

    [Required]
            [BindProperty]
            public string name { get; set; } 
            [BindProperty]
            public myObject MyObject { get; set; } = new myObject { EmailsList="xyz"};
            public  class myObject
            {
                public  string  EmailsList { get; set; }
            }
    

    查看:

    <form id="myform" method="post">
        <div class="form-group">
            <label asp-for="name" class="control-label"></label>
            <input asp-for="name" class="form-control" />
            <span asp-validation-for="name" class="text-danger"></span>
        </div>
    
        <textarea class="form-control" asp-for="MyObject.EmailsList" rows="3" placeholder="Multiple addresses need to be seperated by a semi-colon ;"></textarea>
    </form>
    <button onclick="Test()">click me!</button>
    
    
    @section Scripts{
        <script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
        <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
    
        <script>
            function Test() {
                $("#myform").validate();
                if ($("#myform").valid()) {
                    $.ajax({
                        type: "POST",
                        url: '',
                        headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
                        data: $("#myform").serialize(),
                        success: function (data) {
    
                        },
                    })
                } else{
                    $("#MyObject_EmailsList").val($("#MyObject_EmailsList").val() + $("#MyObject_EmailsList").val());
                }
            }
        </script>
    }
    

    请求:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 2014-02-01
      相关资源
      最近更新 更多