【问题标题】:Show textarea after save保存后显示文本区域
【发布时间】:2015-06-30 06:37:35
【问题描述】:

我正在使用 tinymce。我可以选择使用单选按钮(是或否)显示 tinymce。但该功能仅适用于 onchange。但是在保存状态(是或否)之后,单选按钮的状态被保存。但是当用户第一次访问该页面时,微小的 mce 不再可见(在用户选择是之后)。

这是tinymce的视图

<div class="form-group">
        @Html.Label(Resources.Entity.Product.GeneratePDF, new { @class = "text-bold control-label col-md-2" })
        <div class="col-lg-6 col-md-8 col-sm-10 ">
            @Html.Label(Resources.Entity.Product.GeneratePDFYes) @Html.RadioButtonFor(model => mailModel.IscheckedPDF,true, new {@class = "MAIL_PRODUCT_HANDLERS_AttachPdf" })
            @Html.Label(Resources.Entity.Product.GeneratePDFNo)  @Html.RadioButtonFor(model => mailModel.IscheckedPDF,false, new {@class = "MAIL_PRODUCT_HANDLERS_AttachPdf" })
        </div>
    </div>



    <div class="form-group" id="MAIL_PRODUCT_HANDLERS_pdfeditor">
        <div id="hideLableProduct">
            @Html.Label(Resources.Entity.Product.PdfMessage, new { @id = "hideLable", @class = "text-bold control-label col-md-2" })
        </div>
        <div class="col-lg-6 col-md-8 col-sm-10 ">
            @Html.EditorFor(model => mailModel.PdfMessage, new { htmlAttributes = new { @class = "form-control tiny-mce", @id = "GeneratePDFMailProductHandler", data_lang = System.Globalization.CultureInfo.CurrentUICulture.Name } })
            @Html.ValidationMessageFor(model => mailModel.PdfMessage)
        </div>
        <div class="col-lg-6 col-md-8 col-sm-10 ">
        </div>
        <div class="col-sm-offset-2 col-lg-6 col-md-8 col-sm-8">
            <div id="hideButtonProduct">
                <br /><br />  <a href="" class="btn btn-success" id="btnGeneratePDF" name="btnGeneratePDF" formtarget="_blank" onclick="generatePdfPreview('GeneratePDFMailProductHandler'); return false;"> &nbsp;&nbsp;&nbsp;<i class="fa fa-fw fa-check"> </i> @Resources.Action.Navigation.PreviewPDF</a>
            </div>
        </div>
    </div>

这是 javascript:

 $(".MAIL_PRODUCT_HANDLERS_AttachPdf").change(function () {
        if ($(this).val() == "True") {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').show();
        }
        else {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').hide();
        }
    });

谢谢

如果我这样做:

 $(function () {
        if ($(".MAIL_PRODUCT_HANDLERS_AttachPdf").val() == "True") {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').show();
        }
        else {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').hide();
        }
    });  




    $(".MAIL_PRODUCT_HANDLERS_AttachPdf").change(function () {
        if ($(this).val() == "True") {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').show();
        }
        else {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').hide();
        }
    });

编辑器始终可见。即使您选择否并保存状态并返回表单。 tinymce 是可见的,单选按钮被选为 no

【问题讨论】:

  • 把渲染好的html放在这里。

标签: javascript c# jquery asp.net-mvc razorengine


【解决方案1】:

只需将您的代码放入准备好的文档中。

PSB。

$(document).ready(function () {

    $(".MAIL_PRODUCT_HANDLERS_AttachPdf").change(function () {
        if ($(this).val() == "True") {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').show();
        }
        else {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').hide();
        }
    });

});

【讨论】:

  • 谢谢。但是如果您现在选择是,如果您在保存表单后返回,tinymce 将不可见
  • 实际上你在绑定时硬编码了单选按钮的值,请改成@Html.RadioButtonFor(model =&gt; mailModel.IscheckedPDF,mailModel.IscheckedPDF, new {@class = "MAIL_PRODUCT_HANDLERS_AttachPdf" })
  • 但是对于这两个复选框呢?是还是不是?
  • 我找到了解决办法。
【解决方案2】:

如果我理解正确,你应该在你的文档准备函数中添加这个,如下所示:-

$(function(){
    showHideTinyMce()

    $(".MAIL_PRODUCT_HANDLERS_AttachPdf").change(function () {
      if ($(this).val() == "True") {
        $('#MAIL_PRODUCT_HANDLERS_pdfeditor').show();
      }
      else {
        $('#MAIL_PRODUCT_HANDLERS_pdfeditor').hide();
     }
    });
 });

 function showHideTinyMce(){
        $('#MAIL_PRODUCT_HANDLERS_pdfeditor').hide();
        if ($(".MAIL_PRODUCT_HANDLERS_AttachPdf").val() == "True") {
              $('#MAIL_PRODUCT_HANDLERS_pdfeditor').show();
        }              
  }

【讨论】:

  • 感谢您的评论。但现在的问题是改变不再起作用了。如果您将单选按钮从 yes 更改为 no 或从 no 更改为 yes。 tinymce 不会隐藏 - 如果您选择否。因此,您选择否并保存表单。然后,如果您返回表单,单选按钮的选择为 no,但微小的 mce 是可见的。
  • 谢谢。但是现在单选按钮不再起作用了。你不能从是切换到否。什么都没有发生
  • 现在的问题是,如果您选择单选按钮的任何选项,结果总是 false
  • 这是否意味着单选按钮更改方法正在触发并且总是显示为假?
  • 谢谢。我找到了解决方案。看我的帖子
【解决方案3】:

好的,我找到了解决方案。因为是局部视图,我以为我不允许在里面放任何脚本。但解决方案是将脚本放在局部视图中,如下所示:

@if (!Model.IsCheckedPDFMailForm) {
    <script>
        $(document).ready(function () {
            $('#MAIL_FORM_SUBMITTER_pdfeditor').hide();
        });
    </script>
}

在一个单独的 jquery 文件中,像这样:

 $(".MAIL_PRODUCT_HANDLERS_AttachPdf").change(function () {
        if ($(this).val() == "True") {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').show();
        }
        else {
            $('#MAIL_PRODUCT_HANDLERS_pdfeditor').hide();
        }
    });

【讨论】:

  • 在 View 中编写业务逻辑被认为是一种不好的做法。
猜你喜欢
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
相关资源
最近更新 更多