插入文本和放大器;在ASPX输入字段设置聚焦/? [英] Insert Text & Set Focus on/in a aspx input field?

查看:113
本文介绍了插入文本和放大器;在ASPX输入字段设置聚焦/?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要上应在文本框(多)内容的开头插入一个字符串,并将光标插入字符串中间一个ASPX的网站上执行一个JavaScript函数的问题。
它只是不被调用都在我的身边。

ASPX code:

 <头=服务器>
    <标题> Unbenannte Seite< /标题>
    <脚本SRC =htt​​ps://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js类型=文/ JavaScript的>< / SCRIPT>
    <脚本类型=文/ JavaScript的>
        函数setCaretPosition(elemId,caretPos){
            VAR ELEM =的document.getElementById(elemId);            如果(ELEM!= NULL){
                如果(elem.createTextRange){
                    VAR范围= elem.createTextRange();
                    range.move('性格',caretPos);
                    range.select();
                }
                其他{
                    如果(elem.selectionStart){
                        elem.focus();
                        elem.setSelectionRange(caretPos,caretPos);
                    }
                    其他
                        elem.focus();
                }
            }
        }        $(#<%= Button1.ClientID%GT;)。点击(函数(五){
            亦即preventDefault();
            变种D =新的日期();
            变种curr_date = d.getDate();
            变种curr_month = d.getMonth()+ 1;
            变种curr_year = d.getFullYear();
            变种curr_hour = d.getHours();
            变种curr_minute = d.getMinutes();
            变量名称=名称;
            巴不得VAR = curr_date +。 + curr_month +。 + curr_year +/+ curr_hour +:+ curr_minute +/+名字+\\ n+----------------------- -----------------+\\ n;
            变种LEN = wert.length();
            邂逅相遇,巴不得= +\\ n+---------------------------------------- +\\ n+\\ n;
            变种输入= $(#&下;%= tbVZusatz.ClientID%gt;中);
            input.val(+巴不得input.val());
            input.val(input.val());
            setCaretPosition(&下;%= tbVZusatz.ClientID%gt;中,LEN);
        });    < / SCRIPT>
< /头>
<身体GT;
    <表ID =form1的=服务器>
    < D​​IV>
        < ASP:文本框ID =tbVZusatz=服务器的TextMode =多行高度=500px的WIDTH =300像素>< / ASP:文本框>
        < BR />
        < BR />
        < ASP:按钮的ID =Button1的=服务器文本=斯坦普尔/>
    < / DIV>
    < /表及GT;
< /身体GT;

如何插入的字符串应该是这样的:

  2012年11月13日/ 13:08 / LightMonk
----------------------------------------
(光标的定位在这里!)
----------------------------------------

来源我用于此:

http://jsfiddle.net/VP9zT/1/

在HTML文本

设置光标位置

修正的Javascript:

 <脚本类型=文/ JavaScript的>
    $(文件)。就绪(函数(){
        $(#<%= Button1.ClientID%GT;)。点击(函数(五){
            亦即preventDefault();
            变种D =新的日期();
            变种curr_date = d.getDate();
            变种curr_month = d.getMonth()+ 1;
            变种curr_year = d.getFullYear();
            变种curr_hour = d.getHours();
            变种curr_minute = d.getMinutes();
            变量名称=名称;
            巴不得VAR = curr_date +。 + curr_month +。 + curr_year +/+ curr_hour +:+ curr_minute +/+名字+\\ n+----------------------- -----------------+\\ n;
            VAR LEN = wert.length;
            邂逅相遇,巴不得= +\\ n+---------------------------------------- +\\ n+\\ n;
            变种输入= $(#&下;%= tbVZusatz.ClientID%gt;中);
            input.val(+巴不得input.val());
            input.val(input.val());
            setCaretPosition(&下;%= tbVZusatz.ClientID%gt;中,LEN);
        });
    });    函数setCaretPosition(elemId,caretPos){
        VAR ELEM =的document.getElementById(elemId);        如果(ELEM!= NULL){
            如果(elem.createTextRange){
                VAR范围= elem.createTextRange();
                range.move('性格',caretPos);
                range.select();
            }
            其他{
                如果(elem.selectionStart){
                    elem.focus();
                    elem.setSelectionRange(caretPos,caretPos);
                }
                其他
                    elem.focus();
            }
        }
    }
< / SCRIPT>


解决方案

首先,你的code应该是这样的,有处理程序注册上的document.ready()(我删除​​了asp.net标记)
http://jsfiddle.net/rMmwq/

另外请注意,在

  VAR LEN = wert.length;

而不是

  VAR LEN = wert.length();

I have a problem to execute a javascript function on a aspx site that should insert a String at the beginning of the TextBox (MultiLine) Content and sets the Cursor in the middle of the inserted string. It just don't get called at all on my side.

ASPX Code:

    <head runat="server">
    <title>Unbenannte Seite</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function setCaretPosition(elemId, caretPos) {
            var elem = document.getElementById(elemId);

            if(elem != null) {
                if(elem.createTextRange) {
                    var range = elem.createTextRange();
                    range.move('character', caretPos);
                    range.select();
                }
                else {
                    if(elem.selectionStart) {
                        elem.focus();
                        elem.setSelectionRange(caretPos, caretPos);
                    }
                    else
                        elem.focus();
                }
            }
        }

        $("#<%=Button1.ClientID %>").click(function(e){
            e.preventDefault();
            var d = new Date();
            var curr_date = d.getDate();
            var curr_month = d.getMonth() + 1;
            var curr_year = d.getFullYear();
            var curr_hour = d.getHours();
            var curr_minute = d.getMinutes();
            var name = "Name";
            var wert = curr_date + "." + curr_month + "." + curr_year + " / " + curr_hour + ":" + curr_minute + " / " + name + "\n" + "----------------------------------------" + "\n";
            var len = wert.length();
            wert = wert + "\n" + "----------------------------------------" + "\n" + "\n";
            var input = $("#<%=tbVZusatz.ClientID %>");
            input.val(wert + input.val());
            input.val(input.val());
            setCaretPosition("<%=tbVZusatz.ClientID %>",len);
        });

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="tbVZusatz" runat="server" TextMode="MultiLine" Height="500px" Width="300px"></asp:TextBox>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="Stempel" />
    </div>
    </form>
</body>

How the inserted String should look like:

13.11.2012 / 13:08 / LightMonk
----------------------------------------
(Position of the Cursor here!)
---------------------------------------- 

Sources I used for this:

http://jsfiddle.net/VP9zT/1/

Set cursor position in html textbox

Corrected Javascript:

<script type="text/javascript">
    $(document).ready(function(){
        $("#<%=Button1.ClientID %>").click(function(e){
            e.preventDefault();
            var d = new Date();
            var curr_date = d.getDate();
            var curr_month = d.getMonth() + 1;
            var curr_year = d.getFullYear();
            var curr_hour = d.getHours();
            var curr_minute = d.getMinutes();
            var name = "Name";
            var wert = curr_date + "." + curr_month + "." + curr_year + " / " + curr_hour + ":" + curr_minute + " / " + name + "\n" + "----------------------------------------" + "\n";
            var len = wert.length;
            wert = wert + "\n" + "----------------------------------------" + "\n" + "\n";
            var input = $("#<%=tbVZusatz.ClientID %>");
            input.val(wert + input.val());
            input.val(input.val());
            setCaretPosition("<%=tbVZusatz.ClientID %>",len);
        });
    });

    function setCaretPosition(elemId, caretPos) {
        var elem = document.getElementById(elemId);

        if(elem != null) {
            if(elem.createTextRange) {
                var range = elem.createTextRange();
                range.move('character', caretPos);
                range.select();
            }
            else {
                if(elem.selectionStart) {
                    elem.focus();
                    elem.setSelectionRange(caretPos, caretPos);
                }
                else
                    elem.focus();
            }
        }
    }


</script>

解决方案

First, your code should look like this, with handler registration on document.ready() (I removed the asp.net markup) http://jsfiddle.net/rMmwq/

Please also note the

 var len = wert.length;

instead of

 var len = wert.length();

这篇关于插入文本和放大器;在ASPX输入字段设置聚焦/?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆