2012-03-08 3 views
1

옆에 확인란이있는 전자 메일 목록이 있으므로 사용자는 전자 메일로 보낼 주소를 선택할 수 있습니다. 이제 다른 확인란을 선택하면 다른 모든 확인란이 선택됩니다. 아래는 내가 (물론 유래의 도움으로) 작성한 코드 :모든 확인란을 선택하고 선택한 모든 항목을 전역 변수에 저장하십시오.

<SCRIPT LANGUAGE="JavaScript"> 

function selectFunction (checkall,field) 
{ 
    if(checkall.checked==true){ 
     for (i = 0; i < field.length; i++) 
      field[i].checked = true ; 
    }else{ 
     for (i = 0; i < field.length; i++) 
      field[i].checked = false ; 
    } 
} 

</script> 

<form name="myform" action="profile-invite.html" method="post"> 
    <b>Your Favorite Scripts & Languages</b><br> 
    <input type="checkbox" name="list" value="1">[email protected]<br> 
    <input type="checkbox" name="list" value="2">[email protected]<br> 
    <input type="checkbox" name="list" value="3">[email protected]<br> 
    <input type="checkbox" name="list" value="4">[email protected]<br> 
    <input type="checkbox" name="list" value="5">[email protected]<br> 

    <input type="checkbox" name="selectallcb" value="Check All" 
    onClick="selectFunction(document.myform.selectallcb,document.myform.list)"> 
    <input type="submit" name="formSubmit" value="Submit" /> 

</form> 

기능은 잘 작동 "모두 선택"은, 그러나 인 print_r 사용하여 내가 버튼을 제출할 때 클릭 것을보고는 submited 값은 마지막 내가 선택한 확인란. 예를 들어 5-3-1-2를 클릭하면 $ _POST의 값은 나머지 2가 아닌 "2"가됩니다.

나는 나의 코드가 오직 하나의 선택된 체크 박스 만 등록 할 수 있다는 것을 깨달았습니다. 그러므로 마지막 코드 만 고려됩니다. 내가 인 print_r로 확인할 때

<form name="myform" action="profile-invite.html" method="post"> 
    <b>Your Favorite Scripts & Languages</b><br> 
    <input type="checkbox" name="list[]" value="1">[email protected]<br> 
    <input type="checkbox" name="list[]" value="2">[email protected]<br> 
    <input type="checkbox" name="list[]" value="3">[email protected]<br> 
    <input type="checkbox" name="list[]" value="4">[email protected]<br> 
    <input type="checkbox" name="list[]" value="5">[email protected]<br> 

    <input type="checkbox" name="selectallcb" value="Check All" 
    onClick="selectFunction(document.myform.selectallcb,document.myform.list)"> 
    <input type="submit" name="formSubmit" value="Submit" /> 

</form> 

지금, 그것은 여러 선택을 등록 (내가 5-3-1-2 클릭하면 값 :. 그래서 체크 박스의 이름 뒤에 [] 추가하여 코드를 재 작성 $ _POST에서 지금은 [0] => 5, [1] => 3, [2] => 1, [3] => 2)

"모두 선택"확인란이 더 이상 작동하지 않습니다. . 필자는 필드를 배열로 변형시킨 [] 때문인 것으로 추측됩니다. 나는 ("document.myform.list"를 "document.myform.list []"등으로 대체하여) 다양한 방법을 시도했다. 아무도 지금까지 작업하고 있지는 않지만 실험을 계속할 것이다. 그러나 아무도 병합 방법에 대한 명확한 아이디어가 있다면 위의 2 코드는 도움을주십시오. 이것에

onClick="selectFunction(document.myform.selectallcb,document.myform.list)" 

:

당신에게

답변

1

변경이 감사

onClick="selectFunction(document.myform.selectallcb,document.myform['list[]'])" 

는 여기에 바이올린 : 그것은 작동 http://jsfiddle.net/NxfH6/

+0

! 고마워. – kaninabu

관련 문제