2010-03-24 4 views
0

입력란에 입력란에 3을 입력하는 경우 3 개의 작은 텍스트 상자가 아래 또는 자바 스크립트 또는 jquery를 통해 팝업으로 표시되어야합니다. 어떻게 할 수 있습니까?jquery 또는 javacript에서 요소를 동적으로 추가

<input type="text" name="order">3</input> 

감사합니다 ..

답변

2

당신은 아마 ... 단지 숫자 항목을 허용하는 텍스트 상자를 마스크 아니면 오류를 방지하기 위해 번호의 목록을 드롭 다운 목록을 사용한다 명심하십시오. 그러나 here은 숫자가 아닌 항목을 방지하는 훌륭한 jquery 마스크 플러그인입니다.

var order = $('#order'), 
    container = $('<div/>').insertAfter(order); 

order.keyup(function(){ 
    container.html(
     Array(Math.abs(~~this.value) + 1).join('<input/>') 
    ); 
}); 

참고로, ~~이 (-하지 이중 비트)는 어떤 수의 표현을 얻을 수있는 효과가 있습니다 :로

<input type="text" name="Order" onKeyDown="checkVal(this)">3</input> 

<div id="myDiv"> 
</div> 


function checkVal(ctrl){ 
    var val = ctrl.value; 
    $('myDiv').html(''); // remove existing elements 
    for (i=0;i<parseInt(val,10);i++){ 
     $('#myDiv').append('<input type="text" />'); 
    } 
} 
+0

감사 ..................... – Hulk

+2

항상에서는 parseInt에 두 번째 매개 변수로 기수를 지정합니다. 이렇게하면 0xAF 및 유사한 입력과 같은 입력이 원하지 않는 기수로 파싱되지 않습니다. – PatrikAkerstrand

+2

3이 아닌 4 개의 텍스트 상자를 div에 넣을 것입니다.이 값을 i ryanulit

8

<input/> "순서"의 ID를 줘, 그것은 간단합니다 (toInt32 작업을 사용하여) 입력 한 다음 플로어링하십시오. 예컨대 :

~~'2'; // => 2 
~~'2.333'; // => 2 
~~null; // => 0 

그리고 Math.absArray()에 전달 경우 오류가 발생합니다 즉, 음의 값에 대하여 보호하는 것입니다.

DEMO : http://jsbin.com/azexa4

+1

확실히 받아 들인 대답보다 더 좋은 대답. –

+0

확실히. 명확히. –

+0

더블 bitwise NOT flooring을 설명하면 대부분의 독자에게 도움이 될 수 있습니다. :) – miketaylr

관련 문제