Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从文本字段复制文本,并在当前光标位置插入另一个文本区域_Javascript_Razor Pages - Fatal编程技术网

Javascript 从文本字段复制文本,并在当前光标位置插入另一个文本区域

Javascript 从文本字段复制文本,并在当前光标位置插入另一个文本区域,javascript,razor-pages,Javascript,Razor Pages,参考下图,当我单击“添加”按钮时,我需要从第一个文本字段规则前缀复制文本,然后使用剪贴板,然后需要将复制的文本插入当前光标位置的其他textarea EditeEvent 我相信下面的代码几乎就在那里了,但我似乎无法将复制的文本转换为允许插入其他文本区域的格式 完成此操作后,下一个任务是使用“删除”按钮执行相反的操作,并从textarea Edit事件中删除复制的文本 注意:textarea Edited事件将配置为只读,因此用户无法直接编辑它 // Function Rule Prefix

参考下图,当我单击“添加”按钮时,我需要从第一个文本字段规则前缀复制文本,然后使用剪贴板,然后需要将复制的文本插入当前光标位置的其他textarea EditeEvent

我相信下面的代码几乎就在那里了,但我似乎无法将复制的文本转换为允许插入其他文本区域的格式

完成此操作后,下一个任务是使用“删除”按钮执行相反的操作,并从textarea Edit事件中删除复制的文本

注意:textarea Edited事件将配置为只读,因此用户无法直接编辑它

 // Function Rule Prefix Add Button
function rulePrefixAdd() {

    /* Get the text field */
    var copyText = document.getElementById("rulePrefixInput");

    /* If text field is empty, show alert */
    if (copyText.value.length == 0) {
        /* Popup Window Alert the copied text */
        alert("Text input is empty!");
        return;
    }

    /* Select the text field */
    copyText.select();
    copyText.setSelectionRange(0, 99999); /*For mobile devices*/

    /* Copy the text inside the text field */
    var textString = document.execCommand("copy");

    //alert('textString'); // Alert box contains the correct string

    // NOT WORKING - PLEASE HELP
    typeInTextarea($(editedEventTextArea), textString);

    // This works but I dont want a hardcoded string, need to insert the text from clipboard.
    //typeInTextarea($(editedEventTextArea), "  << LOOK WHAT I DID! >>  ")
}

 function typeInTextarea(el, newText) {
    var start = el.prop("selectionStart")
    var end = el.prop("selectionEnd")
    var text = el.val()
    var before = text.substring(0, start)
    var after = text.substring(end, text.length)
    el.val(before + newText + after)
    el[0].selectionStart = el[0].selectionEnd = start + newText.length
    el.focus()
    return false
}

刚刚意识到razor页面上父div类中的formgroup属性阻止javascript函数将文本插入textarea。参考上面的评论,我已经消除了将文本复制到剪贴板的需要,下面的更新功能似乎可以正常工作

 // Function Rule Prefix Add Button
function rulePrefixAdd() {

    /* Get the text field */
    var copyText = document.getElementById("rulePrefixInput");

    /* If text field is empty, show alert */
    if (copyText.value.length == 0) {
        /* Popup Window Alert the copied text */
        alert("Text input is empty!");
        return;
    }

    typeInTextarea($(editedEventTextArea), copyText.value);
}

异类规则前缀,但最终在SampleStringblahblahblah的中间…你在建什么?在一个不可编辑的区域中间,你甚至设法选择了什么?你设法说:粘贴在当前的光标位置上,而文本文本在同一个问题中是不可编辑的。所以,如果真的,文本文本实际上是可编辑的而不是只读的,那么就可以插入一个插入符号。规则,是否要添加另一个规则?那么,删除这个东西应该如何处理嵌套规则呢?好吧,对于基于web的应用程序来说,只读可能是一个错误的术语,我让这些都在Windows窗体中工作,但试图用javascript将相同的原因和影响应用于asp.net核心显然是另一回事。不要过多地理解我称为文本字段规则前缀的事实,我要求其他表单字段也使用相同的逻辑,所以在工作解决方案之后。谢谢