C# 如何启用/禁用TinyMCE文本框上的按钮onkeyup或onkeydown
在ascx页面上,我有一个tinymce编辑器和一个按钮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> <
<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;
}
});
}
}