C# 如何启用/禁用TinyMCE文本框上的按钮onkeyup或onkeydown

C# 如何启用/禁用TinyMCE文本框上的按钮onkeyup或onkeydown,c#,asp.net,C#,Asp.net,在ascx页面上,我有一个tinymce编辑器和一个按钮 <asp:TextBox ID="txtName" runat="server" Width="100%" ></asp:TextBox> <test:tinymceextender runat="server" ID="TinyMceExtender" TargetControlID="txtName" Theme="Full"> </test:tinymceextender> <

在ascx页面上,我有一个tinymce编辑器和一个按钮

<asp:TextBox ID="txtName" runat="server" Width="100%" ></asp:TextBox>
<test:tinymceextender runat="server" ID="TinyMceExtender" TargetControlID="txtName" Theme="Full"> </test:tinymceextender>

<asp:Button ID="btnSave" Text="Save" Enabled="false" runat="server" />

我想检查textbox是否为空,然后btnsave应该是禁用的,如果textbox不是空的,它应该是启用的,这是它第一次工作(因为我在加载页面上检查它),因为我正在输入一些文本并使用backspace删除该文本btn仅处于启用模式。我试着用onKeyUp和onKeyPress来做,但它对TinyMCE有效

这两个js我用过,但它不工作

$(document).ready(function () {
    document.getElementById('<%=btnSave.ClientID %>').disabled = true;
    var my_editor = tinymce.get('<%=txtName.ClientID %>');
    if ($(my_editor.getBody()).text() == '') {
        $("#<%=btnSave.ClientID %>").attr('disabled', 'disabled');
    }
    else if ($(my_editor.getBody()).text() != '') {
        $("#<%=btnSave.ClientID %>").removeAttr('disabled');
    }
});
$(文档).ready(函数(){
document.getElementById(“”).disabled=true;
var my_editor=tinymce.get(“”);
if($(my_editor.getBody()).text()=''){
$(“#”)attr('disabled','disabled');
}
else if($(my_editor.getBody()).text()!=“”){
$(“#”)removeAttr('disabled');
}
});

window.onload=函数(){
document.getElementById(“”).disabled=true;
}
功能启用\u BTN(){
var EN=tinymce.get(“”);
如果(EN=''){
document.getElementById(“”).disabled=true;
}否则{
document.getElementById(“”).disabled=false;
}
}
在txtName上调用onkeydown=“ENABLE_BTN()

在F12上:我的文本框代码看起来像这样

  <fieldset>

  <input id="BasePage_txtName" type="text" style="width: 100%; display: none;"  name="BasePage$txtName" aria-hidden="true">
  <span id="BasePage_txtName_parent" class="mceEditor defaultSkin" role="application" aria-labelledby="BasePage_txtName_voice">
  <span id="BasePage_txtName_voice" class="mceVoiceLabel" style="display:none;">Rich Text Area</span>
  <table id="BasePage_txtName_tbl" class="mceLayout" cellspacing="0" cellpadding="0" role="presentation" style="width: 100%; height: 100px;">
  <tbody>
  <tr class="mceFirst" role="presentation">
  <tr class="mceLast">
 </tbody>
   </table>
  </span>
  </fieldset>

富文本区

我会使用
keyup
事件来检查内容是否为空,如下所示。编辑:更新为使用TinyMCE的怪异事件处理程序方法

$(function () {

  tinyMCE.init({
    // adapt accordingly
    mode : "exact",
    theme : "simple",
    elements : "txtName", 
    setup : function(ed) {
               ed.onInit.add(function(ed) {
                     bindKeyUp(ed);
           });}
             });
});

function bindKeyUp(ed) {
 if (tinyMCE.activeEditor) {
    ed.onKeyUp.add(function() { 
      $('#btnSave').attr('disabled', !(textBoxEmpty()));
    });
 }
}

function textBoxEmpty() {
 var contentLength = tinyMCE.get('#txtName').getContent();
    if (contentLength.length) {
      return true;
    }
 return false;
}
}))

函数bindKeyUp(ed){
if(tinyMCE.activeEditor){
ed.onKeyUp.add(函数(){
var contentLength=removeHTMLTags(tinyMCE.get(“”).getContent();
if(contentLength.trim().length){
document.getElementById(“”).disabled=false;
}
否则{
document.getElementById(“”).disabled=true;
}
});
}
}

不工作,调试器在通过F12进行调试时没有启动键控功能。我正在用extender在单独的js文件中使用tinyMCE.init。我不能将它添加到页面级别。我不明白如果它在另一个页面上完成,为什么它在init上不能工作。如果tinyMCE在同一页面上,那么它工作正常,但在我的情况下,tinyMCE在其他解决方案上…我知道不明白。在你的特定项目中,你能控制tinyMCE.init()吗?
$(function () {

  tinyMCE.init({
    // adapt accordingly
    mode : "exact",
    theme : "simple",
    elements : "txtName", 
    setup : function(ed) {
               ed.onInit.add(function(ed) {
                     bindKeyUp(ed);
           });}
             });
});

function bindKeyUp(ed) {
 if (tinyMCE.activeEditor) {
    ed.onKeyUp.add(function() { 
      $('#btnSave').attr('disabled', !(textBoxEmpty()));
    });
 }
}

function textBoxEmpty() {
 var contentLength = tinyMCE.get('#txtName').getContent();
    if (contentLength.length) {
      return true;
    }
 return false;
}
$(function () {

 tinyMCE.init({
// adapt accordingly
mode : "exact",
theme : "simple",
elements : "txtName", 
setup : function(ed) {
           ed.onInit.add(function(ed) {
                 bindKeyUp(ed);
       });}
         });
function bindKeyUp(ed) {
    if (tinyMCE.activeEditor) {
        ed.onKeyUp.add(function () {
            var contentLength = removeHTMLTags(tinyMCE.get('<%=txtName.ClientID %>').getContent());
            if (contentLength.trim().length) {
                document.getElementById('<%=btnSave.ClientID %>').disabled = false;
            }
            else {
                document.getElementById('<%=btnSave.ClientID %>').disabled = true;

            }

        });
    }
}