【问题标题】:Changing the position of Kendo UI Validator更改 Kendo UI Validator 的位置
【发布时间】:2015-02-19 14:06:31
【问题描述】:

我尝试在我的项目中更改 Kendo UI Validator 的位置,但是更改相关 kendo css 文件中相关属性的值(即 display: inline-block;)尚未解决问题。那么,如何将位置从下方更改为控件的右侧,如图所示?提前感谢您的考虑。

HTML 视图(渲染):

<label for="Name">Name</label>

<span class="k-widget k-numerictextbox"><span class="k-numeric-wrap k-expand-padding k-state-disabled">
<input type="text" value="" name="Name" maxlength="30" id="Name" data-val-required="Required field" 
data-val-regex-pattern="^[a-zA-Z \.X]+$" data-val-regex="Please check the value" data-val-maxlength-max="25" 
data-val-maxlength="The field Name must be a string or array type with a maximum length of '25'." data-val="true" 
class="letters_onlyk-formatted-value k-input"></span><span data-valmsg-replace="true" data-valmsg-for="Name" 
class="field-validation-valid"></span></span>

<span class="k-widget k-tooltip k-tooltip-validation k-invalid-msg field-validation-error" data-for="Name" 
data-valmsg-for="Name" id="Name_validationMessage" role="alert"><span class="k-icon k-warning"> </span>Required field</span>


CSS:

.k-widget.k-tooltip-validation {
    background-color: #FFF4C9;
    border-color: #FFE79E;
    color: #635145;
}

span.k-tooltip {
    border-width: 1px;
    display: inline-block;
    padding: 2px 5px 1px 6px;
    position: static;
}

.k-tooltip {
    background-repeat: repeat-x;
    border-style: solid;
    border-width: 1px;
    min-width: 20px;
    padding: 4px 5px 4px 6px;
    position: absolute;
    text-align: center;
    z-index: 12000;
}


查看(剃刀):

@using (Html.BeginForm("Create", "Multiplier", FormMethod.Post,
new { id = "addForm", enctype = "multipart/form-data"}))
{
    @Html.AntiForgeryToken()

    <div class="container">
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })

        <fieldset>
            <legend>Person</legend>
            <section>
                <div class="legend-left">

                    @Html.ValidationMessageFor(model => model.Term)
                    <br />
                    @Html.LabelFor(m => m.Name)
                    @Html.Kendo().TextBoxFor(m => m.WhoIsOnline)
                    <br />
                    //... deleted for brevity
                </div>
            </section>
        </fieldset>  

            @(Html.Kendo().Button()
                .Name("submitbtn")
                .HtmlAttributes(new { type = "submit", @class = "k-primary k-button k-button-icontext" })
                .Content("Save")
            )
    </div>
}


更新:

应用“@Html.ValidationMessageFor”后,验证消息如下所示:

【问题讨论】:

  • 你需要显示你的标记
  • @jumpingcode 我更新了代码。谢谢。
  • @TarekNajem:非常感谢您的回复。当我尝试将该代码复制到我的视图时,它起作用了。但是,我的观点是剃刀,当我将代码复制到该页面时,它不起作用。您能否看看我的代码以及如何在我的视图中将您的 html 代码用作剃须刀代码?该代码有剃刀格式吗?

标签: css asp.net-mvc kendo-ui kendo-asp.net-mvc kendo-validator


【解决方案1】:

诀窍是将 ValidationMessageFor 放在 TextBoxFor 之后。您的代码应如下所示:

@Html.LabelFor(m => m.Name)
@Html.Kendo().TextBoxFor(m => m.WhoIsOnline)
@Html.ValidationMessageFor(model => model.Term)

在css中不要改变位置或显示属性,只改变颜色

别忘了:

<script>
  $(document).ready(function() {
    $("form").kendoValidator()
  });
</script>

如果您想要自定义模板:

<script>
  $(document).ready(function() {
    $("form").kendoValidator(
    {
        errorTemplate: "<span class='required'>#=message#</span>"
    });
</script>

更多信息: http://docs.telerik.com/kendo-ui/aspnet-mvc/validation

【讨论】:

  • 感谢您的回复。但是,验证消息无法对齐。是否可以针对不同类型的输入对齐它们?如果不是,我应该使用 jquery 验证而不是 kendo 验证器吗?
  • @H.Johnson 不,你可以做一个自定义模板,检查我的编辑
  • 嗨塔瑞克。尽管可以将相同的方法和errorTemplate 应用于所有输入,例如Kendo DropdownListTextBox 等,但它不适用于Kendo Editor。我已经好几天没有在网上找到有关Kendo Editor 验证的示例了。任何想法?你能帮忙吗?
猜你喜欢
  • 1970-01-01
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多