我正在使用 ACT 4.1.7.607。客户端是IE 9。
我找不到可以从客户端清除编辑器内容的解决方案。
我尝试过使用 JQuery:
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" height="200px" Width="837px"></asp:TextBox>
<ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender" TargetControlID="TextBox1" runat="server" EnableSanitization="False"></ajaxToolkit:HtmlEditorExtender>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Submit" />
<asp:Button ID="Button2" runat="server" Text="Clear" />
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$('#<%=Button2.ClientID%>').click(function () {
var editorControl = $get("<%=TextBox1.ClientID%>");
var clearValue = '';
editorControl.innerHTML = clearValue;
})
})
</script>
这似乎改变了文本框的innerHTML 值。但是,屏幕不会更新以显示更改。
也尝试过 JavaScript:
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" height="200px" Width="837px"></asp:TextBox>
<ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender" TargetControlID="TextBox1" runat="server" EnableSanitization="False"></ajaxToolkit:HtmlEditorExtender>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Submit" />
<asp:Button ID="Button2" runat="server" Text="Clear" OnClientClick="javascript:clearEditor()" />
<script type="text/javascript" language="javascript">
function clearEditor(){
document..getElementById('<%=TextBox1.ClientID%>').innerHTML = '';
}
</script>
这似乎也改变了innerHTML值,但是,它同样不会在浏览器窗口中显示变化。
我见过一些涉及扩展器的 div 容器或扩展器的“ExtenderContentEditable”属性或扩展器的“setContent”方法的“解决方案” - 这些在我的世界中都不存在。
如果有解决方案,我将非常感激。
最佳答案
您可以使用此脚本:
function clearHtmlExtender(){
var extender = $find("<%= htmlEditorExtender.ClientID %>");
extender._editableDiv.innerHTML = "";
extender._editableDiv_onblur();
}
简短描述:上面的脚本重置可编辑 div (_editableDiv.innerHTML) 的内容,然后强制扩展程序将此 hrml 分配给目标文本框。
关于javascript - 如何从客户端清除/设置具有 Ajax Control Toolkit HTML Editor Extender 的 Asp.Net TextBox 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17452804/