为什么在通过模板初始化时,kendo.ui javascript模板中隐藏字段的验证不起作用?
在我的页面上,使用以下kendo.ui模板在客户端创建内容:为什么在通过模板初始化时,kendo.ui javascript模板中隐藏字段的验证不起作用?,javascript,jquery,validation,kendo-ui,Javascript,Jquery,Validation,Kendo Ui,在我的页面上,使用以下kendo.ui模板在客户端创建内容: <script type="text/x-kendo-template" id="BerichtElementTemplate-Tabelle"> <div class="bericht-element"> <input type="hidden" name="Elemente[#= Index #].Art" value="@BerichtElementArten.Tabelle
<script type="text/x-kendo-template" id="BerichtElementTemplate-Tabelle">
<div class="bericht-element">
<input type="hidden" name="Elemente[#= Index #].Art" value="@BerichtElementArten.Tabelle" />
<label for="Elemente[#= Index #].TabelleCsv">[[[Tabelle:]]]</label>
<div class="InputWrapper">
<input type="hidden" name="Elemente[#= Index #].TabelleCsv" value="#= TabelleCsv#" required data-required-msg="[[[Bitte geben Sie einen Wert ein.]]]" />
<span class="k-invalid-msg" data-for="Elemente[#= Index #].TabelleCsv"></span>
<input type="file" onchange="csvFileInput_OnChange(this)" />
<div class="csv-preview">[[[Keine Daten vorhanden. Bitte wählen Sie eine CSV-Datei aus.]]]</div>
<span>[[[Überschrift:]]]</span>
<input type="text" name="Elemente[#= Index #].TabelleUeberschrift" maxlength="200" class="k-textbox" value="#= TabelleUeberschrift #" />
<span>[[[Unterschrift:]]]</span>
<input type="text" name="Elemente[#= Index #].TabelleUnterschrift" maxlength="200" class="k-textbox" value="#= TabelleUnterschrift #" />
</div>
<div class="remove-element">
<img src="/images/delete2.png" title="[[[Entfernen...]]]" onclick="RemoveBerichtElementImage_OnClick(this)" />
</div>
</div>
</script>
到目前为止,这是可行的。不起作用的是验证隐藏的输入字段。验证器表示字段为空,而不是。我和FireBug核对过了
奇怪的是,如果我将代码更改为以下内容:
$("#DynamicContentWrapper").append($berichtElementTemplateTabelle({
Index: @j,
TabelleCsv: '',
TabelleUeberschrift: '@elem.TabelleUeberschrift',
TabelleUnterschrift: '@elem.TabelleUnterschrift'
})
);
$("[name$='[@j].TabelleCsv']")[0].value = '@Html.Raw(javaScriptSafeCsv)';
这意味着隐藏字段的值是在添加模板化内容后设置的。验证器不再抱怨
这是kendo.ui中的错误吗?我遗漏了什么?我发现了问题。这一行:
TabelleCsv: '@Html.Raw(javaScriptSafeCsv)',
需要:
TabelleCsv: '@javaScriptSafeCsv',
因为字符串JavaScriptSafeCV
可能包含引号或其他影响页面HTML的字符。虽然FireBug没有显示任何错误,但HTML标记被剑道模板破坏,剑道模板将字符串作为原始HTML写入输入字段的value属性
TabelleCsv: '@javaScriptSafeCsv',