简体   繁体   English

Javascript增加文本框的值+1

[英]Javascript Increase value of textbox +1

Basically I'm looking for something in JavaScript for a live webpage that can increase the current numeric value of a text box by 1 each time as a user is typing. 基本上,我正在为实时网页寻找JavaScript中的某种东西,每次用户键入文本时,文本都可以使文本框的当前数值增加1。

For example 例如

<td> <input type='text' name='form_c_port' value='1' size='5' maxlength='5'/> </td>

And then my next text box value should be 2 increases by 1 or decreases by 1 everytime the numeric value of the other textbox changes 然后我的下一个文本框值应该是2,每次其他文本框的数值更改时,该值应增加1或减少1

<td> <input type='text' name='form_q_port' value='0' size='5' maxlength='5'/> </td>

But I cant seem to find out how to increase the value by one in JavaScript. 但是我似乎无法找出如何在JavaScript中将值增加一。 I know how to do this in PHP, but I need to it to be done on the live webpage as a user changes the value. 我知道如何在PHP中执行此操作,但是随着用户更改值,我需要在实时网页上执行此操作。

This was a lot more complicated than I originally thought. 这比我最初想象的要复杂得多。 I didn't realize that both inputs could be modified. 我没有意识到两个输入都可以修改。 I finally got it working by listening for the backspace and delete on the first input. 我终于通过侦听退格键并在第一个输入中删除来使其正常工作。 It still has bugs if the input is too fast it seems. 如果输入速度过快,它仍然会出现错误。

Here is the HTML 这是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>

Here is the jQuery 这是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);
}

And here is a link to a fiddle . 这里是一个小提琴的链接。

向您的输入元素添加onkeydown侦听器,该侦听器将检查文本的当前大小并更新值。

Add an onkeydown() event to the objects, so: 向对象添加一个onkeydown()事件,因此:

<input type='text' name='form_q_port' value='0' size='5' maxlength='5' onkeydown="increaseValue(this)"/>

Then JS: 然后是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/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM