动态创建UL和LI以及处理单选按钮的错误消息

时间:2018-05-21 04:00:38

标签: javascript css html5 css3 parsley.js

我检查时得到了以下代码。我看到UL和List Item是在验证时动态创建的。这是预期的。但是,错误消息将组中的下一个单选按钮配置到下一行,并将消息放在第一个单选按钮后的第一行。任何想法强制消息到下一行或可能在第二个单选按钮后没有它处理按钮。

我使用data-parsley-required =“required”。我打算在标签后放一个div,但不知道如何在那里标记错误信息,因为我在标签中使用的只是data-parsley-required =“required”删除它不显示错误。

<div class="col-pa" data-toggle="buttons">
    <label class="button err" aria-describedby="parsley-id-multiple-Units">
        <input data-parsley-required="required" id="Gender" name="Units" type="radio" value="Fixed" data-parsley-multiple="Units" data-parsley-id="12"> 
        Fixed
    </label><ul class="validation-errors filled" id="parsley-id-multiple-Units"><li class="parsley-required">This is mandatory</li></ul>
    <label class="button">
        <input data-parsley-required="required" id="Units" name="Units" type="radio" value="Variable" data-parsley-multiple="Units"> 
        Variable
    </label>
</div>

我的cshtml代码

<div class="buttons" role="group" data-toggle="buttons">
                <label class="@fixedClass">
                    @Html.RadioButtonFor(m => m.Units, "Fixed", new { data_parsley_required = "required" }) 
                    @Translator.GetTextOrDefault("CMS.Value.Units", "Fixed")
                </label>
                <label class="@variableClass">
                    @Html.RadioButtonFor(m => m.Units, "Variable", new { data_parsley_required = "required" }) 
                    @Translator.GetTextOrDefault("CMS.Value.Units", "Variable")
                </label>
            </div>

1 个答案:

答案 0 :(得分:0)

根据parsley.js doc,您可以在首次发起.parsley(options)时配置选项。在这种情况下,您要查找的选项是errorsWrapper

以下是如何定位错误消息容器的示例。

$(() => {
  var instance = $("#myform").parsley({
    errorsWrapper: ".errorsWrapper"
  });
});
.errorsWrapper {
  display: none;
  padding: 4px;
}

.errorsWrapper.filled {
  display: block;
  border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.8.1/parsley.js"></script>

<form id="myform">
    <label class="button err" aria-describedby="parsley-id-multiple-Units">
        <input name="Units" type="radio" value="Fixed" data-parsley-multiple="Units" data-parsley-required="required" /> 
        Fixed
    </label>
    <label class="button">
        <input name="Units" type="radio" value="Variable" data-parsley-multiple="Units" data-parsley-required="required" /> 
        Variable
    </label>

    <ul class="errorsWrapper">
    </ul>
    
    <br />
    <input type="submit" class="btn btn-default validate" />
</form>

它们还有一些有用的demos,对于理解插件的工作方式非常有用。