2012-04-20 3 views
-1

다음 함수는 DOM에 입력을 추가하고 화면의 마지막 ID를 기반으로 순차 ID를 제공합니다. 그러나 그것은 단지 미리 편집 된 DOM에서 실제로 마지막 하나를 계산하는 것처럼 보입니다. 예를 들어, 기본적으로 5 개의 입력이 있으면 6,7,8이 아닌 모든 뉴스와 ID를 부여합니다. 내가 추가 한 것들을 계산합니까? 하나의 마지막 자식이 원인DOM을 편집 한 후 jQuery 마지막 요소 가져 오기

addInput: function() { 

    // Get the last input num 
    $lastNum = $('.inputs input:last-child').length; 

    // Num is last input plus 1 
    $num = $lastNum + 1; 

    // Input HTML 
    $input = '<input type="text" name="iam' + $num + '" id="iam' + $num +'" />'; 

    // Only allow 10 inputs to be added 
    if ($('.inputs input').length > 9) { 
     alert('You can only have a maximum of 10'); 
     return false; 
    } 

    // Append the input to the inputs list 
    $('.inputs').append($input); 

}, 

답변

6

$('.inputs input:last-child').length이는 항상 '1을 반환합니다. 대신 $('.inputs input').length을 사용하십시오.

0

몇 년 전 제가 사용했던 프로젝트의 기본 논리가 있습니다.

사용 가능한 입력 수가있는 숨김 필드를 배치하십시오.

초기 단계에서 숨겨진 필드 = 0. 내가 3 개 새로운 입력을 추가하는 경우

은 내 숨겨진 필드

(3) 내가 요구 사항에 따라 내 데이터베이스에 3 개 개의 입력의 세부 정보를 저장합니다 = 값을가집니다.

페이지를 다시 열면 기본적으로 3 개의 입력을로드해야합니다. 그래서 나는 숨겨진 필드에서도 같은 값을 전달할 수 있습니다. 새로운 입력이 입력을 높이기 위해 숨겨진 필드의 값을 사용합니다 추가

내 기능 ...

편집 : 그것에

jQuery를 당신이 부모 블록을 가지고해야 내용을 모든 입력 .

그래서 입력 사항을 상위 div에서도 찾을 수 있습니다.

$(".inputs input:[type=text]").length. 

참조하십시오이 Fiddle

+0

하지 내가 그것을 요구하고있어 내가 구축해야합니다 당신이 무슨 뜻인지 나중에 ... 당신은 아마의 예를 보여줄 수 처리해야합니다 뭔가 동안 사용자가 추가 할 수있는 추가 정보를 위해 페이지의 입력이로드됩니다! – Cameron

+0

바이올린을 준비하면서 2 분 정도 기다리십시오. – Murtaza

관련 문제