2014-03-06 2 views
0

정상적인 위치에서 "튀어 나오는"부분이 있으며 뷰포트의 측면에 바인딩됩니다. 이런 일이 발생하면 특정 요소가 숨겨져 즉각적으로 중요한 데이터 만 남겨 둡니다.비어있는 경우에만 입력 필드로 텍스트를 보냅니다.

내 문제는 데이터를 포함하지 않는 클래스와 일치하는 셀에만 복사 된 데이터를 가져올 수 없다는 것입니다.

나는 문제가 내 JS에있다 확신한다 : http://jsfiddle.net/UjPAk/

어떤 도움이 크게 감사합니다 :

$('.spec-table-quote-button').click(function() { 
    var toCopy = $(this).closest('tr').find('td:eq(1)').text(); 
    var copyInto = $(".part-number-input").val(''); 
    $(copyInto).val(toCopy); 
    $('.add-field').click(); 
}); 

여기 모든 조각을 볼 수있는 바이올린입니다. 미리 많은 감사드립니다!

답변

4

var copyInto = $(".part-number-input").filter(function() { return $(this).val() == '' });

.val('')

var copyInto = $(".part-number-input").val('')

교체는 빈 문자열에 일치하는 모든 사물의 값을 설정합니다. 일치 목록을 값이 빈 문자열 인 요소로 필터링하지 않습니다.

+0

Gotcha. JS/jquery로 기본을 뛰어 넘는 수준. filter()가 어떻게 작동하는지 연구해야 할 것입니다. 다시 한 번 감사드립니다! – Todd

+0

http://stackoverflow.com/a/1299468/349353에 따르면, 필터 대신에'$ ('. part-number-input [value = ""]')'같은 것을 할 수 있습니다. – peterjmag

+0

참. 필터 방법을 사용하면 "데이터가 포함되지 않은"구성 요소에 대해보다 유연하게 처리 할 수 ​​있습니다. 예를 들어 값이 공백이나 공백이 아닌지 확인할 수 있습니다. –

2

사용

var copyInto = $(".part-number-input"); 
copyInto.val(toCopy); 

대신

var copyInto = $(".part-number-input").val(''); 
$(copyInto).val(toCopy); 

의 나는 코드가 자명하다고 생각합니다.

+0

이 두 세트의 라인은 똑같은 일을합니다 (두 번째 라인은 "into"를 먼저 비 웁니다). 첫 번째는 더 효율적입니다. –

+0

바이올린으로 시도해도 작동하지 않습니다. 적절한 클래스로 모든 요소에 데이터를 입력하는 것과 동일한 문제를 반복합니다. 시도해 줘서 고마워. – Todd

0

시도 :

$('.spec-table-quote-button').click(function() { 
    var toCopy = $(this).closest('tr').find('td:eq(1)').text(); 
    $(".part-number-input").val(toCopy); 
    $('.add-field').click(); 
}); 
+0

이것은 셀에 데이터를 입력하지만 셀이 먼저 비어 있는지 확인하지 않습니다. 추가 된 각 입력란을 통해 새로 선택한 값은 일치하는 클래스가있는 계열의 각 입력 필드에 복제됩니다. 노력해 주셔서 감사합니다. – Todd

관련 문제