2012-11-20 4 views
1

기본적으로 사용자가 입력 할 때마다 텍스트 상자의 현재 숫자 값을 1 씩 늘릴 수있는 라이브 웹 페이지에 대해 JavaScript에서 뭔가를 찾고 있습니다. 다음 자바 스크립트 텍스트 상자의 값 늘리기 +1

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

그리고 예를

를 들어

내 옆에있는 텍스트 상자 값은 1로이 개 증가 할 수 또는 1 매번 다른 텍스트 상자의 숫자 값이

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

을 변경하지만 보이지 못할만큼 감소한다 자바 스크립트에서 값을 하나씩 늘리는 방법을 찾으십시오. 나는 PHP에서 이것을하는 방법을 알고 있지만, 사용자가 값을 변경함에 따라 라이브 웹 페이지에서이를 수행 할 필요가있다.

+1

아무 것도 시도해 보지 않으셨습니까? – AndreKR

+0

예 http://jsfiddle.net/jSXCy/ form_c_port 값을 1 이상으로 설정하면 form_q_port 값이 매번 1로 유지되므로 숫자 값이 1 인 상태에서 문제가 발생합니다. – C0nw0nk

답변

0

텍스트의 현재 크기를 확인하고 값을 업데이트하는 입력 요소에 onkeydown 수신기를 추가하십시오.

0

때문에, 객체에 onkeydown() 이벤트 추가 : 다음

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

JS :

function increaseValue(object) 
{ 
object.Value += 1; 
} 
+0

고마워요 MrXenotype은 매력과 같이 작동합니다. – C0nw0nk

+0

작동하는 경우 다른 사람들이 쉽게 찾을 수 있도록 허용 된 답변으로 설정하십시오. –

0
document.getElementsByName("form_c_port")[0].value = parseInt(document.getElementsByName("form_c_port")[0].value) + 1 

http://jsfiddle.net/NK6dB/

1

이 많이 나는 원래 생각했던 것보다 더 복잡보기 . 두 입력 모두 수정 될 수 있다는 것을 알지 못했습니다. 마지막으로 백 스페이스를 청취하고 첫 번째 입력을 삭제하여 작업을 마쳤습니다. 입력이 너무 빠르면 여전히 버그가 있습니다.

다음은 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> 

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

JQuery와

입니다 그리고 여기 fiddle에 대한 링크입니다.

+0

귀하의 방법은 실제로 내가 뭘 하려는지 잘 작동하지만 그것은 form_c_port 값을 100으로 설정하면 form_q_port 값을 101로 변경하지 않는다는 사실에 문제가있다. http://jsfiddle.net/jSXCy/ – C0nw0nk

+0

@ C0nw0nk이 문제를 설명하기 위해 코드를 편집했습니다. 여기에 [바이올린] (http://jsfiddle.net/bplumb/jSXCy/1/) –

+0

그것은 나를 위해 바이올린에 대해서도 같은 일을 계속합니다. 어떻게 든 백 스페이스 onit을 사용하여 "NaN"을 출력하도록했습니다. – C0nw0nk

관련 문제