c# - 如何使用mshtml在textarea中输入文本

标签 c# javascript html mshtml

我遇到了一个问题,我必须以编程方式填充 TextArea。我使用了以下代码。

 System.Windows.Forms.HtmlElement reviewText = myDoc.GetElementById("review-text");
 reviewText.InnerText = Program.mainForm.richTextBox1.Text.Trim();

这工作正常,它在 TextArea 控件中设置文本。我面临的问题是这段文字看起来很轻。当用户点击此文本时,它会消失。它仅在第一次点击时发生。

所以我尝试了下面的代码,先点击这个框,然后设置文本。

 reviewText.InvokeMember("click");

然后尝试在 TextArea 中设置文本,但得到了相同的行为。

我深入研究了页面的源代码,发现了一些与此 TextArea 相关的脚本。

TextArea 的来源

<textarea onkeyup="javascript:yelp.ui.widget.countChars(this.form.comment,5000);"   onkeydown="javascript:yelp.ui.widget.countChars(this.form.comment,5000);" name="comment" id="review-text" class="form400" rows="8" cols="40" style="height: 86px;"></textarea>

与 TextArea 关联的脚本

 <script type="text/javascript">
   var bizName = "Geary Club";
   if ($('review-text')) 
   {
     new yelp.ui.widget.DefaultValueTextField($('review-text'), 'Please write here');
   } 

有人会建议我如何将文本插入到这个 TextArea 控件中吗?

最佳答案

这是 ASP.NET 网络应用程序吗?如果是,则 System.Windows.Forms.HtmlElement 有问题。我认为正在发生的事情是,当您预填充 TextArea 时,您需要以某种方式禁用 new yelp.ui.widget.DefaultValueTextField JavaScript 代码。您是否能够使用具有多行属性集的 ASP.NET TextBox 控件?如果是这样,我会使用它并更改您的顶部代码以仅设置文本框控件的 .Text 属性。

无论哪种方式,在 Javascript 中(如果这是 jQuery),我都会这样做:

if ($('review-text') && $('review-text').val() != "")
{
  new yelp.ui.widget.DefaultValueTextField($('review-text'), 'Please write here');
}

只有在没有文本时才会设置默认值。

关于c# - 如何使用mshtml在textarea中输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300918/

相关文章:

c# - 悬停时菜单跳转

javascript - jQuery - 如何修复多个按钮的不同事件?

html - 测试 HTML 电子邮件呈现

c# - 安全建议

当 TextBox 中没有数字时 C# 程序崩溃

javascript - Sitepoint "Redeem code"Woocommerce 问题教程

javascript - 如何使用 JavaScript 找到单击的元素(或最近的具有背景图像的子元素或父元素)的背景图像?

javascript - Asp.Net ScriptManager 导致 jQuery Widget 出现问题

javascript - 如何使用 jQuery 获取 `data-value`?

c# - 如何在 C# 中应用重命名方法来更改带有 get/set 的名称?