![](/img/trans.png)
[英]Enable and set focus to text input field with checkbox in Angular JS
[英]Insert Text & Set Focus on/in a aspx input field?
我在 aspx 站點上執行 javascript 函數時遇到問題,該函數應該在文本框(多行)內容的開頭插入一個字符串,並將光標設置在插入的字符串的中間。 它只是在我這邊根本沒有被調用。
ASPX 代碼:
<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>
插入的字符串應如下所示:
13.11.2012 / 13:08 / LightMonk
----------------------------------------
(Position of the Cursor here!)
----------------------------------------
我為此使用的來源:
更正的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>
首先,您的代碼應如下所示,在 document.ready() 上注冊處理程序(我刪除了 asp.net 標記) http://jsfiddle.net/rMmwq/
另請注意
var len = wert.length;
代替
var len = wert.length();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.