在文本区域中显示所选文本

时间:2016-03-23 06:41:16

标签: javascript c# asp.net

function ShowSelection()
{
    var textComponent = document.getElementById('TextArea1');
    var selectedText;
    if (document.selection != undefined) {
        textComponent.focus();
        var sel = document.selection.createRange();
        selectedText = sel.text;
    }
    else if (textComponent.selectionStart != undefined) {
        var startPos = textComponent.selectionStart;
        var endPos = textComponent.selectionEnd;
        selectedText = textComponent.value.substring(startPos,endPos)
    }
    alert("You selected: " + selectedText)
}
</script>

<asp:TextBox id="TextArea1" TextMode="MultiLine" runat="server">/asp:TextBox>
<a href="#" onclick=alert(ShowSelection());>Click here to display the selected text</a>

这里我试图按用户显示所选文本。我需要显示用户选择的文本。但遗憾的是,事件未触发..此代码中有任何错误。请给我解决方案..

2 个答案:

答案 0 :(得分:1)

你的相同代码在小提琴中起作用,而不是asp.net:

    <script>
  function ShowSelection() {
    var textComponent = document.getElementById('TextArea1');
    var selectedText;
    if (document.selection != undefined) {
      textComponent.focus();
      var sel = document.selection.createRange();
      selectedText = sel.text;
    } else if (textComponent.selectionStart != undefined) {
      var startPos = textComponent.selectionStart;
      var endPos = textComponent.selectionEnd;
      selectedText = textComponent.value.substring(startPos, endPos)
    }
    alert("You selected: " + selectedText)
  }

</script>

<input id="TextArea1" type="textarea" />
<a href="ShowSelection()" onclick="ShowSelection()">click me </a>

点是为什么你再次在ShowSelection()函数上调用alert,该函数本身正在发出警报,而不是返回任何字符串值。

请检查。

答案 1 :(得分:0)

几点建议:

在您的代码中TextArea1是一个ASP控件,您不会像在给定代码中那样获取或设置它的值。为了使其正常工作,您可以执行以下任何操作:

  1. 将Asp文本框更改为HTML TextBot:因此标记将如下所示:

     <input type="text" id="TextArea1"/> 
    
  2. 如果您想在后端访问

    ,请

    包含runat="server"

    1. 更改脚本以正确获取值,就像Webruster在评论中建议的那样。或者来自this reference

      var textComponent = document.getElementById('<%=TextArea1.ClientID %>');
      

      我要说的另一件事是锚标签。由于两个原因,无需显示额外警报:

      • 该方法未返回任何内容
      • 内容已在被调用方法
      • 中提醒
    2. 所以<a>将如下所示:

      <a href="#" onclick=ShowSelection();>Click here to display the selected text</a>