2014-02-14 89 views
0

我试图改变一个DIV的文本,当我输入不同的值到我的文字输入:的Javascript上输入文本改变,改变的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" 

...等

我得到正确的值,只有当我点击somehere输入外

什么是错的? 谢谢。

+0

添加您的普通html –

+0

html太大而无法放在这里。你可以指定你在html中搜索什么,这样我可以选择哪个部分应该放在这里? – user2886091

+0

LShetty - 伟大的,它的工作原理,发布它像一个答案,我会接受它,如果你想。谢谢 – user2886091

回答

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()); 
    }); 
}); 
0

尝试:

function rok() { 

var roky=$(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'); 
    } 

} 

$(function() { 
$('select, input').on('keydown blur change', rok); 
}); 

DEMO

+1

'var roky = $(this).val();'或'var roky = this.value'会更好。 –

+0

好点!我编辑过 – laaposto

0

使用KeyUp事件,而不是其他的,因为文本字段的值是牵强,当你的keydown,当按下按键您对变量的实际值是前一个值,而不是当前在输入域中的那个,所以功能正确工作:

$(function() { 
$('input').on('keyup', rok); 
}); 

这里是DEMO

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

});