输入文本的Javascript更改,更改div文本

时间:2014-02-14 12:31:29

标签: javascript jquery html

当我在文本输入中输入不同的值时,我正在尝试更改一个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"

......等等。

只有当我点击输入

之外的某个地方时才会得到正确的值

有什么问题? 谢谢。

3 个答案:

答案 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');   }

});