음 .. 할 수 있습니다. 숨겨진 입력을 사용 중지해야만 양식이 제출 될 때 처리되지 않을 수도 있습니다.
코드를 살펴 보았습니다.
양식을 보내고 서버 측에서 결과를 처리하는 경우 'id'속성이 실제로 필요한지 잘 모르겠습니다. 제출 된 매개 변수의 이름을 'name' 속성. 조건부로 확인하려면 백엔드를 변경하지 않고보기 측면에서 다른 ID를 자유롭게 사용할 수 있습니다.
var checkbox = document.querySelector("#custom_value");
var select = document.querySelector("#selection");
var altSelect = document.querySelector("#selection_alt");
checkbox.addEventListener('change', function(event) {
select.classList.toggle('hidden');
select.disabled = !select.disabled;
altSelect.classList.toggle('hidden');
altSelect.disabled = !altSelect.disabled;
});
.hidden {
display: none;
}
<input type="checkbox" id="custom_value"> Alternative
<br>
<select id="selection" name="selection">
<option value="1">1</option>
<option value="1">2</option>
<option value="1">3</option>
<option value="1">4</option>
<option value="1">5</option>
</select>
<input type="text" disabled class="hidden" name="selection" id="selection_alt" placeholder="Custom value..">
** ID **의 고유 한 번에 두 개 이상의 요소에 사용한 적이 있어야한다. 두 요소를 서로 연결하는 다른 방법을 생각해 보는 것이 좋습니다. 어쩌면 그 (것)들에'클래스'를 할당 할지도 모르거나 어쩌면'dataset'를 사용하십시오 – NewToJS
다만 선택 상자 입력 유형을 텍스트 박스로 바꾸는 방법이 없습니까? 2 개의 상자가있는 것보다? –
왜 필요한가요? 목적을 지정할 수 있으면 누군가가 대안을 제안 할 수 있습니다. – 31piy