>基本上,我正在JavaScript中为一个实时网页寻找一些东西,该网页可以在用户每次键入时将文本框的当前数值增加1。
例如
<td> <input type='text' name='form_c_port' value='1' size='5' maxlength='5'/> </td>
然后我的下一个文本框值应该是 2 每次其他文本框的数值更改时增加 1 或减少 1
<td> <input type='text' name='form_q_port' value='0' size='5' maxlength='5'/> </td>
但我似乎找不到如何在 JavaScript 中将值增加 1。我知道如何在 PHP 中执行此操作,但是当用户更改值时,我需要在实时网页上完成。
这比我最初想象的要复杂得多。我没有意识到两个输入都可以修改。我终于通过侦听退格键并在第一个输入时删除来让它工作。如果输入似乎太快,它仍然存在错误。
这是 HTML
<td> <input id="one" type='text' name='form_c_port' value='1' size='5' maxlength='5'/> </td>
<td> <input id="two" type='text' name='form_q_port' value='0' size='5' maxlength='5'/> </td>
这是 jQuery
var lengthValue = $('#one').val().length;
$('#one').keyup(function(event){
var key = event.keyCode || event.charCode;
var tempLength = $('#one').val().length;
if(key == 8 || key == 46){
if(tempLength < lengthValue){
lengthValue = $('#one').val().length;
if(isNumber($('#two').val())){
$('#two').val(parseFloat($('#two').val()) - 1);
}
else{
$('#two').val(0);
}
}
}
else if(lengthValue < 5){
lengthValue = $('#one').val().length;
if(isNumber($('#two').val())){
$('#two').val(parseFloat($('#two').val()) + 1);
}
else{
$('#two').val(0);
}
}
});
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
这是小提琴的链接。
向输入元素添加一个onkeydown
侦听器,该侦听器将检查文本的当前大小并更新值。
向对象添加一个 onkeydown()
事件,以便:
<input type='text' name='form_q_port' value='0' size='5' maxlength='5' onkeydown="increaseValue(this)"/>
然后 JS:
function increaseValue(object)
{
object.Value += 1;
}
document.getElementsByName("form_c_port")[0].value = parseInt(document.getElementsByName("form_c_port")[0].value) + 1
请参阅 http://jsfiddle.net/NK6dB/