2015-06-30 3 views
1

Я использую tinymce. И у меня есть возможность показать тинимус с помощью переключателя (Да или НЕТ). Но funtion работает только на onchange. Но после сохранения состояния (Да или НЕТ) состояние переключателя сохраняется. Но крошечный mce больше не виден (после того, как пользователь выбрал Yes), когда пользователь впервые заходит на страницу.Показать текстовое поле после сохранения

Это вид из 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 является visble и радио-кнопка выбрана не

+0

поместить обработанную HTML здесь. –

ответ

0

Если я вас правильно понял, вы должны добавить это в вашем документе готовой функции, как это: -

$(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(); 
     }    
    } 
+0

Спасибо за ваш комментарий. Но проблема в том, что изменение больше не работает. Если вы измените переключатель с «да» на «нет» или «нет» на «да». Тиности не скроется - если вы выберете «нет». Таким образом, вы выбираете no и сохраняете форму. Затем, если вы вернетесь к форме, у переключателя есть выбор no, но крошечный mce виден. – InfinityGoesAround

+0

Спасибо. Но теперь переключатели больше не работают. вы не можете переходить от «да» к «нет». Ничего не происходит – InfinityGoesAround

+0

Проблема в том, что если вы выберете любую опцию радиокнопки, всегда будет false, это результат – InfinityGoesAround

0

Просто поместите свой код в документ готов.

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(); 
     } 
    }); 

}); 
+0

Спасибо. bUt, если вы сейчас выбрали Да, тинейма не видна, если вы вернетесь после сохранения формы – InfinityGoesAround

+0

actaully вы сильно закодировали значение переключателя во время привязки, пожалуйста, измените на это '@ Html.RadioButtonFor (model => mailModel.IscheckedPDF, mailModel .IscheckedPDF, new {@class = "MAIL_PRODUCT_HANDLERS_AttachPdf"}) ' –

+0

Но тогда для обоих флажков? да и нет? – InfinityGoesAround

0

Хорошо, я нашел решение. Поскольку это частичное представление, я думал, что мне не разрешено размещать там какие-либо скрипты. Но решение было поместить скрипты в частичном виде, например:

@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(); 
     } 
    }); 
+0

Написание бизнес-логики в представлении рассматривается как плохая практика. – ssilas777

Смежные вопросы