2014-03-05 1 views
0

이것은 시나리오입니다.html & javascript를 사용하여 보내는 입력란을 제어하는 ​​방법은 무엇입니까?

가있는 입력 필드는 display:none ->이 'hidden_input_field'

이름을 할 수 있습니다 그리고 그것은 보여되면 내가이 PARAM을 보낼 display:block

로 변경할 수있는 버튼이있다 숨겨진 경우이 매개 변수를 보내지 마십시오.

내 경우에는이 입력 필드가보기에 표시되지 않지만 양식 태그 내에 존재하므로 숨겨져 있는지 여부에 관계없이 항상이 매개 변수가 전송됩니다.

나는 이것에 관해 좋은 해결책을 물을 수 있습니까?

+0

당신이 필요로하는지 모르겠지만 어쨌든 양식을 숨기는 것이 쉽기 때문에 양식을 숨기더라도 서버 검사를해야합니다. – Uriil

답변

1

입력이 숨겨져 있으면 "name"속성을 제거한 다음 필드가 표시되면 다시 가져올 수 있습니다.

이 밖으로 시도 : 기본적으로

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<title>Test</title> 
<style type="text/css"> 
input#hidden_input_field { 
    display: none; 
} 
</style> 
</head> 
<body> 
<form action="http://google.ru/" method="post"> 
<input id="hidden_input_field" type="text"> 
<button id="reveal">Reveal the field</button> 
<input type="submit" value="Send"> 
</form> 
<script type="text/javascript"> 
var field = document.getElementById("hidden_input_field"); 
var button = document.getElementById("reveal"); 
button.onclick = function() { 
    button.style.display = "none"; 
    field.style.display = "block"; 
    field.setAttribute("name", "name_for_the_parameter"); 

    // This is necessary for preventing the default 
    // browser’s behavior: submitting the form. 
    return false; 
}; 
</script> 
</body> 
</html> 

는 텍스트 필드가 숨겨져 있지만, "공개"버튼을 클릭하면 필드가 표시됩니다. 숨겨져 있지만 "이름"속성이 없으므로 양식을 제출하면 해당 매개 변수가 요청에 포함되지 않습니다. 필드가 표시되면 "name"속성이 요소에 추가되므로 양식을 제출하면 해당 매개 변수가 요청에 포함됩니다.

+1

감사합니다. 이름 속성이 매개 변수를 보내는 지점이었습니다. 또는 아닙니다 :) – Canna

+1

''의'disabled' 속성을 토글하는 것이 더 의미 상 정확할 수도 있습니다. – rhgb

관련 문제