TinyMCE,即使文本框不清空也要验证2次

时间:2015-06-19 19:13:11

标签: javascript validation tinymce

使用TINYMce和验证,但需要发布两次,并且textarea是否为空并不重要。我研究过这个,但是找不到任何有用的东西。以下是代码片段。

模型

[Required(ErrorMessage = "*Response Required")]
[UIHint("tinymce_jquery_full"), AllowHtml]
public string LibrarianResponse { get; set; }

查看

<span style="color: red;font-weight: 700;">@Html.ValidationMessageFor(m => m.LibrarianResponse)</span>
    <div class="editor-field">
        @Html.EditorFor(model => model.LibrarianResponse)
    </div> 

<script type="text/javascript">
            jQuery(function ($) {
            $('#submit').click(function () {
            tinyMCE.triggerSave();});
            });
</script>

 <input type="submit" value="Submit" />

提前感谢。

3 个答案:

答案 0 :(得分:1)

好的,最后解决了这个问题。我的原始代码几乎是正确的。

您会注意到,在我原来的问题中,我有以下代码:

<script type="text/javascript">
            jQuery(function ($) {
            $('#submit').click(function () {
            tinyMCE.triggerSave();});
            });
</script>

另外,我在textarea下面有以下内容:

<span style="color: red;font-weight: 700;">
  @Html.ValidationMessageFor(m => m.LibrarianResponse)
</span>
<div class="editor-field">
  @Html.EditorFor(model => model.LibrarianResponse)
</div> 

我所要做的就是将LibrarianResponse(使用开发工具发现谷歌浏览器中id的{​​{1}})放入textarea功能。< / p>

所以这很有用。见下文:

.triggerSave

感谢那些回答我问题的人。我很感激。

答案 1 :(得分:0)

TinyMCE需要花费少量时间来更新它在其上运行的原始(现在隐藏)输入。你是用triggerSave做的。但是,表单提交可能会在triggerSave完成之前继续并运行。所以这样做:

jQuery(function ($) {
    $('#submit').click(function(evt) {
        evt.preventDefault();
        tinyMCE.triggerSave();
        $(evt.target).closest('form').submit();
    });
});

答案 2 :(得分:0)

我通过tinyMCE textarea更改时随时更新基础textarea解决了这个问题:

function tinyChanged(inst) {
    if (inst.isDirty()) {
        inst.save();
    }
}

tinymce.init({
    selector: "myTextArea",
    setup: function(ed) {
        ed.on("change", function () {
            tinyChanged(ed);
        })
    }
});