2011-05-15 6 views
0

두 개의 섹션으로 구성된 양식을 sec1sec2으로 나누었습니다. 각 섹션은 sec1Divsec2Div이라는 div의 일부입니다. div의 일부 선택에 따라 이 숨김입니다. 그러나 문제는 숨겨진 섹션의 필드가 제출된다는 것입니다. div에있는 모든 입력란이 제출시 제출되지 않도록 방법을 제안하십시오.양식 div의 모든 입력란 제출을 중단하는 방법은 무엇입니까?

답변

3

여러 가지 방법이 있습니다. 함수를 submit의 이벤트의 양식으로 연결하거나 name 숨겨진 div 안의 필드를 제거 할 수 있습니다. 필드를 사용하지 않으려면 disabled="disabled"을 설정하십시오.

jQuery을 사용하는 경우 해당 예제를 수행 할 수 있습니다.

function hideDiv(el) { 
    $('input', el).each(function(){ 
     $(this).attr('disabled', 'disabled'); 
    }); 
    $(el).hide(); 
} 

그리고, 적절한 쇼 DIV 기능 :

function showDiv(el) { 
    $('input', el).each(function(){ 
     $(this).removeAttr('disabled'); 
    }); 
    $(el).show(); 
} 

이 그냥 코드 예제는 것을 상기시켜주십시오

하는 숨겨진 사업부의 모든 필드를 사용하지 않으려면, 당신은 뭔가를 할 수 있습니다 . 그러나 당신은 그것으로부터 아이디어를 얻을 수 있습니다.

1

이 이유는 요소가 여전히 form 요소 내에 있기 때문입니다. CSS를 사용하여 div을 숨기더라도 변경되지 않습니다. 여전히 DOM에 있습니다.

처리해야하는 서버 측을 식별하는 데 사용할 수있는 div 각각에 숨겨진 input 필드를 추가하는 것이 가장 쉽습니다. 그러면 숨겨진 양식의 데이터를 무시할 수 있습니다.

정말로 데이터 게시를 중단해야하는 경우 약간 지저분하지만 필드가 제출되지 않도록 form 요소 외부의 div 숨겨진 내용을 이동할 수 있습니다. div을 다시 표시하려면 필드를 다시 이동해야합니다. CSS의 복잡성에 따라 일부 브라우저에서 문제가 발생할 수 있으므로 첫 번째 제안을 사용하는 것이 좋습니다.

관련 문제