结束动态文本框,我有以下输入标签:文本追加到使用jQuery
<input type="text" id="title" class="title" maxlength="20>
我需要“天”被附加到框,用户键入文本的末尾。这是如何完成与jQuery?
我已经试过这样:
$('#title').on('keyup', function() {
this.value = this.value+' day';
});
,但没有奏效。
结束动态文本框,我有以下输入标签:文本追加到使用jQuery
<input type="text" id="title" class="title" maxlength="20>
我需要“天”被附加到框,用户键入文本的末尾。这是如何完成与jQuery?
我已经试过这样:
$('#title').on('keyup', function() {
this.value = this.value+' day';
});
,但没有奏效。
使用jQuery追加末的文本,然后移动插入符号到所需的位置:
$('#title').on('keyup', function(e) {
// Ignore if backspace is pressed
if(e.keyCode == 46){
return false;
}
// Set the value based on the current value length
// If it's longer than 3, "day" is already appended
this.value = (this.value.length<3)?this.value+="day":this.value;
// Move caret to the latest added character
var caretPos = this.value.length-3;
if(this.createTextRange) {
var range = this.createTextRange();
range.move('character', caretPos);
range.select();
}
else {
if(this.selectionStart) {
this.focus();
this.setSelectionRange(caretPos, caretPos);
}
else
this.focus();
}
});
http://WhatHaveYouTried.com –
补充说明。抱歉。 – Jaxkr
你是什么意思“用户键入”?如果他们输入“a”并且你追加“日”来获得“敬意”,然后他们将光标移动到最后并键入“b”?你是否再次追加“日”以获得“adaybday”?如果等到用户离开该字段后再测试该值是否已经以“日”结尾(如果不添加,那么)不是更好吗?尝试'blur'事件而不是'keyup' ... – nnnnnn