2016-07-30 4 views
0

확인란을 선택하면 양식이 표시됩니다. 양식이 취소 된 경우 확인란을 선택 취소하고 싶습니다.테이블 행의 확인란에 참조를 저장하는 방법은 무엇입니까?

테이블 형식 (두 번째 양식), 체크 박스까지 스크롤을 확인 후, 첫 번째 양식에 가서 취소 버튼을 클릭에

편집 할 수 있습니다. 체크 한 상자로 다시 스크롤하십시오. 표시되는 HTML에서

jsfiddle

, 난 정의

var curRow = $(this).closest('.trow').find('input[type=checkbox]'); 
$("#current-row",curRow); 

CONSOLE.LOG 쇼 :

$("#current-checkbox") 
[<input id=​"current-checkbox" type=​"checkbox" class=​"hidden">​] 
연관된 JS에서
<input id="current-checkbox" type="checkbox" class="hidden" /> 

는 I는 현재의 위치를 ​​저장

취소 폼 JS :

$("#cancel-email").on('click', function (e) { 
    debugger 
    e.preventDefault(); 
    setTimeout(function() { showMessage(1, 'Emails not sent.') }, 2000); 
    setTimeout(function() { hideEmailElems(); }, 2000); 
    $("#current-checkbox").find("input[type=checkbox]").prop("checked", false).focus(); 
}); 

CONSOLE.LOG :

$("#current-checkbox").find("input[type=checkbox]").length 
0 

확인란을 저장 찾으려면 올바른 jQuery를 선택은 무엇입니까?

+1

질문을 따르지 못합니다. CMVE – Amit

+1

을 만들면'.find()'문이 필요 없으므로'id' 셀렉터는 하나의 올바른 요소를 갖게됩니다. – Polyov

+0

$ ("# current-checkbox"). prop ("checked", false)를 사용할 수 있습니다. .find() 함수 또는 .closet() 함수를 사용할 필요가 없습니다. –

답변

2

$("#current-checkbox")은 id에 의한 선택기이기 때문에 하나의 요소 (즉, 체크 박스) 만 선택합니다.

find(selector) 방법을 찾을 수 아이 일치하는 요소 내에서 선택 일치 요소, 즉 체크 박스 요소가 자식 요소를 가지고 있지 않기 때문에, 빈이 경우 $("#current-checkbox").find("input[type=checkbox]") 너무.

따라서 .find() 부분은 필요하지 않습니다. $("#current-checkbox")이면 충분합니다.

유효한 HTML에서 the id attribute고유이어야합니다. 따라서 id 선택자는 최대 하나의 요소와 일치합니다.

테이블 행의 확인란에 대한 참조를 저장하는 방법은 무엇입니까?

체크 표시된 체크 박스에 대한 참조를 저장할 필요가 없습니다. 대신 :checked 셀렉터를 사용하여 찾을 수 있습니다.

$("#cancel-email").on('click', function(e) { 
    // Un-check the checked checkbox 
    $(".trow input[type=checkbox]:checked").prop("checked", false); 

    // Hide the E-Mail box 
    $('#main-container').hide(); 
}); 
+0

의미가 있지만 솔루션을 구현 한 후에도 상자가 체크됩니다 (콘솔에 표시 되었음 : $ ("# current-checkbox"). prop ("checked") false)? –

+0

@rontornambe 최소한의 라이브 데모를 만드시겠습니까? –

+0

지각 편집을 위해 죄송합니다. 병원에서 일하고 있습니다. 조잡한 미안해. 미안. 치료에 들어가면, 내가 다시 답장을하기 전에 시간이 걸릴 수 있으므로 시간을들이십시오. –

관련 문제