javascript - 3个文本框,1个按钮,单击按钮将文本放入光标所在的文本框中

标签 javascript c# asp.net cursor

我有 3 个文本框和一个按钮,我需要做的是在按钮上单击我希望文本出现在光标所在的文本框中。

我可以为一个文本框做到这一点,但对于 3 个不同的文本框,我需要 3 个不同的按钮。

你能帮我只用一个按钮吗??? 请帮忙..

这是我为 1 个文本框完成的工作:

函数 insertAtCaret(areaId, embedctrl) {

        var text = document.getElementById(embedctrl).value;
        if (text != "-1") {
            var txtarea = document.getElementById(areaId);
            var scrollPos = txtarea.scrollTop;
            var strPos = 0;
            var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
                "ff" : (document.selection ? "ie" : false));
            if (br == "ie") {
                txtarea.focus();
                var range = document.selection.createRange();
                range.moveStart('character', -txtarea.value.length);
                strPos = range.text.length;
            }
            else if (br == "ff") strPos = txtarea.selectionStart;

            var front = (txtarea.value).substring(0, strPos);
            var back = (txtarea.value).substring(strPos, txtarea.value.length);
            txtarea.value = front + text + back;
            strPos = strPos + text.length;
            if (br == "ie") {
                txtarea.focus();
                var range = document.selection.createRange();
                range.moveStart('character', -txtarea.value.length);
                range.moveStart('character', strPos);
                range.moveEnd('character', 0);
                range.select();
            }
            else if (br == "ff") {
                txtarea.selectionStart = strPos;
                txtarea.selectionEnd = strPos;
                txtarea.focus();
            }
            txtarea.scrollTop = scrollPos;
        }
    }

在上面的示例中,下拉列表的(embedctrl)选定值被插入到文本框中的光标位置。

第 2 部分:

我尝试使用下拉列表在文本框中插入文本,但它不起作用。有什么见解可以解释为什么吗???

<script type="text/javascript">
       $(document).ready(function () {
           var selectedTextBox;
           $("input[type='text']").on("focusin", function () {
               debugger;
               selectedTextBox = this;
           });
           $("#ddlEmbedDBField").on("change", function () {
               debugger;
               var value = document.getElementById('<%=ddlEmbedDBField.ClientID%>').value;
               if (document.getElementById('<%=ddlEmbedDBField.ClientID%>').value != "0")
               {
                   $(selectedTextBox).val(value);
               }              

           });
       });
</script>

最佳答案

只要焦点发生变化,您就可以跟踪选定的文本框:

<script type="text/javascript">
    $(document).ready(function(){
        var selectedTextBox;
        $("input[type='text']").on("focusin", function() { 
            selectedTextBox = this;
        });
        $('#ddl').on("change",function(){
            var selectedVal = this.value;
            $(selectedTextBox).val(selectedVal);
        });
    });
</script>

显然,如果您的选择器不止三个文本框,则必须在选择器中更加具体。

关于javascript - 3个文本框,1个按钮,单击按钮将文本放入光标所在的文本框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27543996/

相关文章:

c# - 如何合并这两个 linq 查询的输出?

javascript - 选择一行时用文本填充下拉字段

javascript - D3.js 径向可折叠径向树(每个分支 1 个分支)

javascript - 使用javascript将 "key-value"对数组转换为对象

c# - Nhibernate 翻译 1=0

c# - 单元测试 - 如何检查类是否并行访问外部资源?

asp.net - 深入了解 Web 表单的好资源?

c# - 隐藏 BoundField 但仍然能够使用 C# 获取值

javascript - 单击以 Angular 提交后如何清除输入

c# - 如何在wpf中单击按钮时更新文本框背景色