当我在文本输入中输入不同的值时,我正在尝试更改一个div的文本:
实施例
Input = 1,
DIV TEXT: "rok" //in eng. "year"
Input = 2,
DIV TEXT: "roky"
Input = 3,
DIV TEXT: "roky"
Input = 4,
DIV TEXT: "roky"
Input = 5,
DIV TEXT: "rokov"
我的输入的默认值是3。
HTML
<input type="text" id="pocetrokov" value="3"><span id="year">roky</span>
JS:
function rok() {
if(roky==2 || roky==3 || roky==4){
$('#year').html('roky');
} else if( roky>4 || roky == 0){
$('#year').html('rokov');
} else if (roky==1){
$('#year').html('rok');
}
}
$(function () {
$('select, input').on('keydown blur change', rok);
});
当我更改defalut值时,我得到了这个:
Input = 1,
DIV TEXT ="rokov" instead of "rok"
Input = 2,
DIV TEXT ="rokov" instead of "rok"
......等等。
只有当我点击输入
之外的某个地方时才会得到正确的值有什么问题? 谢谢。
答案 0 :(得分:1)
试试这个:
function rok(roky) {
if(roky==2 || roky==3 || roky==4){
$('#year').html('roky');
} else if( roky>4 || roky == 0){
$('#year').html('rokov');
} else if (roky==1){
$('#year').html('rok');
}
}
$(function () {
$('input').on('keyup blur change', function(){
rok( $(this).val() );
});
});
答案 1 :(得分:0)
使用Keyup事件而不是其他事件,因为当您进行keydown时获取文本字段的值,并且当键入您的实际值时,变量上的值是前一个值,而不是当前在输入字段中的那个因此,函数正常工作:
$(function () {
$('input').on('keyup', rok);
});
这是DEMO
答案 2 :(得分:0)
伙计们为什么要用2个函数使它复杂化?
$("html").on("keyup","#pocetrokov",function(){
var roky=parseInt($(this).val());
if(roky==2 || roky==3 || roky==4){ $('#year').html('roky');}
else if(roky>4 || roky === 0) { $('#year').html('rokov');}
else if (roky==1){ $('#year').html('rok'); }
});