Asp.net mvc TinyMCE客户端验证问题
我对TinyMCE编辑器有问题。我有一个只有少量文本字段和文本区域(tinymce)的表单,并且启用了客户端验证。当我单击“保存”按钮时,所有文本字段都会进行验证,但需要单击2次才能验证tinymce内容。此外,验证仅在字段为空或条件不满足时显示消息(仅针对测试原因,最多可输入5个字符),但当我输入正确的字符数(少于5个)时,错误消息将保留 下面是代码示例:Asp.net mvc TinyMCE客户端验证问题,asp.net-mvc,validation,tinymce,client-side,Asp.net Mvc,Validation,Tinymce,Client Side,我对TinyMCE编辑器有问题。我有一个只有少量文本字段和文本区域(tinymce)的表单,并且启用了客户端验证。当我单击“保存”按钮时,所有文本字段都会进行验证,但需要单击2次才能验证tinymce内容。此外,验证仅在字段为空或条件不满足时显示消息(仅针对测试原因,最多可输入5个字符),但当我输入正确的字符数(少于5个)时,错误消息将保留 下面是代码示例: <%Html.EnableClientValidation(); %> <%= Html.Validat
<%Html.EnableClientValidation(); %>
<%= Html.ValidationSummary(true, "Na stranici postoje greške.", new { @style = "color: red;" })%></p>
<% using (Html.BeginForm("Create", "Article", FormMethod.Post, new { enctype = "multipart/form-data" }))
{ %>
<fieldset>
<legend>Podaci za Aranžman</legend>
<label class="EditLabel" for="name">
Opis</label>
<br />
<%= Html.TextAreaFor(Model => Model.Description, new { style = "width: 100%; height: 350px;", @class = "tinymce" })%>
<%= Html.ValidationMessageFor(Model => Model.Description, "", new { @style = "color: red;" })%>
<p>
<input type="submit" value="Sačuvaj aranžman" />
</p>
</fieldset>
<% } %>
有什么建议吗?这背后的原因是大多数富文本编辑器(包括tiny mce)不使用文本区域。相反,它有自己的输入,在提交表单时只复制文本。因此,在编辑器中键入内容时,要验证的字段实际上不会更改 您需要做的是为此创建一个变通方法,当您单击submit按钮时,将文本从编辑器复制到文本区域。可以这样做:
$('#mySubmitButton').click(function() {
tinyMCE.triggerSave();
});
如果你有像Tinymce一样的问题,需要的验证在表单提交时没有触发,我有一个这样的解决方案,我知道这不是正确的方式,但它工作良好,请参阅下面的代码 在应用程序中安装tynymce jquery包 这是一个模型 现在在我们看来,cshtml文件意味着
<div class="divclass">
@Html.LabelFor(model => model.txtAboutCompany, new { @class = "required" })
@Html.EditorFor(model => model.txtAboutCompany)
<span class="field-validation-error" id="AC" style="margin:9px 0 0 157px;"></span>
</div>
试试这段代码,你好,Mattias,谢谢你的回答,尽管我在发布问题之前就尝试过这个解决方案,它对点击问题很有效。但即使我输入了正确的字符数(少于5个),也会出现错误消息。我弄明白了原因,我完全忘记了编辑器添加的HTML标记。即使我只键入一个字符,由于附加的标记,我的条件也不满足。愚蠢的错误:)你的答案仍然是正确的,再次感谢你
[Required(ErrorMessage = "Please enter About Company")]
[Display(Name = "About Company : ")]
[UIHint("tinymce_jquery_full"), AllowHtml]
public string txtAboutCompany { get; set; }
<div class="divclass">
@Html.LabelFor(model => model.txtAboutCompany, new { @class = "required" })
@Html.EditorFor(model => model.txtAboutCompany)
<span class="field-validation-error" id="AC" style="margin:9px 0 0 157px;"></span>
</div>
$("#BusinessProfile").click(function () {
var aboutC = $("#txtAboutCompany").val()
var pinfo = $("#txtProductinfo").val();
if (aboutC == "" && pinfo == "") {
$("#AC").append("").val("").html("Please enter about company")
$("#PI").append("").val("").html("Please enter product information")
$("#bpform").valid();
return false;
} else if (aboutC == "") {
$("#PI").append("").val("").html("")
$("#AC").append("").val("").html("Please enter about company")
$("#txtAboutCompany").focus();
$("#bpform").valid();
return false;
} else if (pinfo == "") {
$("#AC").append("").val("").html("")
$("#PI").append("").val("").html("Please enter product information")
$("#txtProductinfo").focus();
$("#bpform").valid();
return false;
}
else {
$("#AC").append("").val("").html("");
$("#PI").append("").val("").html("");
//return true;
$("#bpform").validate();
}
});