This post은 올바른 경로에 있었지만 앞으로 한 걸음 더 나아가 야합니다. 내 입력 이름에는 잠재적으로 비 순차 색인 값이 할당되어 있습니다.Javascript를 사용하여 일련의 숨겨진 입력 필드 색인을 찾는 방법
배경 : 일련의 긴 체크 박스 대신 드롭 박스에서 값을 선택하여 목록을 작성하는 루틴이 있습니다. 이렇게하면 화면의 공간을 줄일 수 있습니다. 따라서 사용자가 드롭 다운에서 값을 선택하면 스크립트는 선택 항목이 아직 존재하지 않는지 확인한 후 다시 선택하지 않습니다.
목록은 다음과 같은 모양을 생성 :
<div id="Access:search_div">
<ul class="options">
<li onclick="removeRoleOptions(this,'Access:search_div');"><input type="hidden" name="Access:search[7]" value="1" />Standard</li>
<li onclick="removeRoleOptions(this,'Access:search_div');"><input type="hidden" name="Access:search[8]" value="1" />Premium</li>
<li onclick="removeRoleOptions(this,'Access:search_div');"><input type="hidden" name="Access:search[10]" value="1" />Lifetime</li>
<li onclick="removeRoleOptions(this,'Access:search_div');"><input type="hidden" name="Access:search[14]" value="1" />SysOp</li>
</ul>
</div>
내가 값을 찾는 방법의 예를 많이 볼 수 있지만,이 목록에 있다면, 그것은 항상 1이 될 것이다 그래서, 그냥 부울을 무엇 이름을 검색하고 색인 값이 첨부 된 것을 확인해야합니다.
: 위의 코드에 대한 그래서, 나는 내가 지금까지 가지고있는 코드의 중요한 부분입니다 7, 8, 10, 여기(14)에 대해 드롭 다운에서 선택한 항목의 값을 비교하려면
function addRoleOptions(select, variable, output) {
var display=document.getElementById(output);
var option = select.options[select.selectedIndex];
var ul = display.getElementsByTagName('ul')[0];
if (!ul) {
ul = document.createElement("ul");
ul.setAttribute('class', 'options');
display.innerHTML = '';
display.appendChild(ul);
}
var choices = ul.getElementsByTagName('input');
for (var i = 0; i < choices.length; i++) {
if (choices[i].value == option.value) {
return;
}
}
option.value는 비교 대상 번호를 보유하고 있습니다.
내 질문은 어떻게 보내지는 값과 비교하기 위해 이름의 [] 안에있는 값을 파싱합니까?