2017-11-15 14 views
0

을, 나는 볼 수있는 사용자의 두 가지 유형 (관리자 및 비서)에 대한 두 개의 테이블이있다. 이러한 테이블에는 여러 파일을 다운로드 할 수있는 확인란이 있습니다. :는 JSP에서 <디스플레이 테이블>

나는 모든 확인란을 선택하여 첫 번째 테이블 열 근처에있는 체크 박스를 클릭하면 사용자 (관리자)의 한 종류 인 이상한 (내가 생각하는) 상황이있다.

나는이 테이블에 대한 코드를 먼저 보여 드리고자합니다.

<script type="text/javascript"> 
$(document).ready(function() { 
$("#clickAll").click(function() { 
    if($(this).is(':checked')) 
     { 
     $("input[name='chkdownload']").each(function() { 
      $(this).attr("checked",true); 
     }); 
     } 
     else 
     { 
     $("input[name='chkdownload']").each(function() { 
      $(this).attr("checked",false); 
     });   
     } 
    }); 
}); 
var countChecked = function() { 
    var n = $("input:checked").length; 
    if (n == 0) { 
     alert("Please click at least one record."); 
     return false; 
    } else { 
     return true; 
    } 

}; 
</script> 

<div class="content"> 
<s:form namespace="/DownloadFile" action="download_getSelectedFile" method="POST" enctype="multipart/form-data"> 

<!--for administrator users to view --> 
<div class="usrAdmin usrAccess" style="display:none"> 
<display:table name="${equipmentList}" class="its" uid="row" 
    sort="list" pagesize="10" requestURI="equipment_view" export="false" defaultsort="1" defaultorder="descending"> 
    <display:columntitle="<input type='checkbox' name='selectall' id='clickAll'/>"><s:checkbox theme="simple" name="chkdownload" fieldValue='%{#attr.row.recordId}' /></display:column> 
    <display:column property="equipName" title="Equipment Name" /> 
    <display:column property="equipLocation" title="Equipment Location" /> 
    <display:column property="equipOfficer" title="Equipment Officer" /> 
    </display:table> 
</div> 

    <!--for secretary users to view --> 
    <div class="usrSec usrAccess" style="display:none"> 
<!-- put row2 to make the table uid unique --> 
<display:table name="${equipmentList}" class="its" uid="row2" 
    sort="list" pagesize="10" requestURI="equipment_view" export="false" defaultsort="1" defaultorder="descending"> 
    <display:column title="<input type='checkbox' name='selectall' id='clickAll'/>"><s:checkbox theme="simple" name="chkdownload" fieldValue='%{#attr.row.recordId}' /></display:column> 
    <display:column property="equipName" title="Equipment Name" /> 
    <display:column property="equipLocation" title="Equipment Location" /> 
    <display:column property="equipOfficer" title="Equipment Officer" /> 
</display:table> 
</div> 

<input type="submit" value="Download Selected"/> 
</s:form> 
</div> 

비서 모드로 전환하면 헤더 열 근처의 확인란을 클릭하면 모든 체크 박스가 선택되지 않습니다. 체크 상자에만 "틱"기호가 표시됩니다. 그러나 관리자 모드로 전환하면 확인란을 클릭하여 모든 확인란을 선택할 수 있습니다. 시작시

는, 나는 JQuery와에 잘못된 이름을 잘못 입력 어쩌면 생각하지만, 나는 코드를 검토, 두 테이블이 동일한 입력 "chkdownload"를 호출 할 수 있습니다.

나는 thisthis 포스트에서 해결책을 읽었지만 내 경우는 그들과 다르다고 생각한다.

코드에서 어떤 부분이 잘못 되었습니까? 거기에 오타가없는 것 같습니다. 그렇지 않으면 관리자 모드의 확인란도 작동하지 않습니다.

누군가 내 실수를 알려주시겠습니까? 내가 지시를 따라

업데이트

은 @reporter에 의해 제안한다. Internet Explorer (IE)에서 html 소스 코드를 복사합니다. 더 많은 코드가 생성되는 것을 보았고 검토를 위해 아래에 표시하고 싶습니다. 고맙습니다.

<div class="content"> 

<form id="download_getSelectedFile" name="download_getSelectedFile" onsubmit="return(countChecked());beginDownload();" action="/RIDW/Download/download_getSelectedFile.action" method="POST" enctype="multipart/form-data"> 
<!--for administrator users to view --> 
<div class="usrAdmin usrAccess" style="display:none;"> 
<span class="pagebanner">2 records found, displaying all pages.</span> 
<span class="pagelinks">Page 1</span> 
<table id="row" class="its"> 
<thead> 
<tr> 
<th><input type='checkbox' name='selectall' id='clickAll'/></th> 
<th class="sortable"> 
<a href="equipment_view?d-16544-s=1&amp;d-16544-o=2&amp;d-16544-p=1">Equipment Name</a></th> 
<th class="sortable"> 
<a href="equipment_view?d-16544-s=2&amp;d-16544-o=2&amp;d-16544- 
p=1">Location</a></th> 
<th class="sortable sorted order2"> 
<a href="equipment_view?d-16544-s=3&amp;d-16544-o=2&amp;d-16544- 
p=1">Equipment Officer</a></th></tr></thead> 
<tbody> 
<tr class="odd"> 
<td><input type="checkbox" name="chkdownload" value="427b0a45dd714d95bd11374b5a2d56b4" id="download_getSelectedFile_chkdownload"/><input type="hidden" id="__checkbox_download_getSelectedFile_chkdownload" name="__checkbox_chkdownload" value="427b0a45dd714d95bd11374b5a2d56b4" /></td> 
<td>Equipment 001</td> 
<td>Location A-1</td> 
<td>Officer A</td></tr> 
<tr class="even"> 
<td><input type="checkbox" name="chkdownload" 
value="76f888d5bb3740aabef70c5f50bea7d9" 
id="download_getSelectedFile_chkdownload"/><input type="hidden" 
id="__checkbox_download_getSelectedFile_chkdownload" 
name="__checkbox_chkdownload" value="76f888d5bb3740aabef70c5f50bea7d9" /> 
</td> 
<td>Equipment 002</td> 
<td>Location A-2</td> 
<td >Officer S</td></tr> 
</tbody></table>  
</div> 

<!--for secretary users to view --> 
<div class="usrSec usrAccess" style="display:none;"> 
<span class="pagebanner">2 records found, displaying all pages.</span> 
<span class="pagelinks">Page 1</span> 
<!-- put row2 to make the table id unique --> 
<table id="row2" class="its"> 
<thead> 
<tr> 
<th><input type='checkbox' name='selectall' id='clickAll'/></th> 
<th class="sortable"> 
<a href="equipment_view?d-16544-s=1&amp;d-16544-o=2&amp;d-16544-p=1">Equipment Name</a></th> 
<th class="sortable"> 
<a href="equipment_view?d-16544-s=2&amp;d-16544-o=2&amp;d-16544-p=1">Location</a></th> 
<th class="sortable sorted order2"> 
<a href="equipment_view?d-16544-s=3&amp;d-16544-o=2&amp;d-16544-p=1">Equipment Officer</a></th></tr></thead> 
<tbody> 
<tr class="odd"> 
<td ><input type="checkbox" name="chkdownload" value="427b0a45dd714d95bd11374b5a2d56b4" id="download_getSelectedFile_chkdownload"/><input type="hidden" id="__checkbox_download_getSelectedFile_chkdownload" name="__checkbox_chkdownload" value="427b0a45dd714d95bd11374b5a2d56b4" /></td> 
<td >Equipment 001</td> 
<td >Location A-1</td> 
<td >Officer A</td></tr> 
<tr class="even"> 
<td ><input type="checkbox" name="chkdownload" value="76f888d5bb3740aabef70c5f50bea7d9" id="download_getSelectedFile_chkdownload"/><input type="hidden" id="__checkbox_download_getSelectedFile_chkdownload" name="__checkbox_chkdownload" value="76f888d5bb3740aabef70c5f50bea7d9" /></td> 
<td >Equipment 002</td> 
<td>Location A-2</td> 
<td >Officer S</td></tr> 
</tbody></table>  

</div> 
    <br> 
    <input type="submit" value="Download Selected"/>  
</form> 
</div> 

장관 테이블 2

업데이트, JSP 코드에서, 나는 id 인 ROW2을 넣어 UID과 HTML 소스 코드에 ROW2를 넣어. 나는 다른 테이블이 정상적으로 작동하는 동안 여전히 모든 확인란을 선택할 수없는 응용 프로그램을 실행합니다. 나는 내용의 코드를 업데이트했지만

, 나는 빠른 검토를 위해 아래의 아이디 부분에 대해 정확한 코드를 바랍니다 추출합니다. 고맙습니다.

JSP

<!--for administrator users to view --> 
<display:table name="${equipmentList}" class="its" uid="row" 
sort="list" pagesize="10" requestURI="equipment_view" export="false" defaultsort="1" defaultorder="descending"> 

<!--for secretary users to view --> 
<display:table name="${equipmentList}" class="its" uid="row2" 
sort="list" pagesize="10" requestURI="equipment_view" export="false" defaultsort="1" defaultorder="descending"> 

의 HTML 소스 코드

<!--for administrator users to view --> 
<table id="row" class="its"> 

<!--for secretary users to view --> 
<table id="row2" class="its"> 
+0

클라이언트 측에서 문제가있는 것 같습니다. 브라우저가받는 것을 html 코드로 서버 측 코드를 대체하십시오. – reporter

+0

@reporter, 귀하의 의견에 감사드립니다. 제발 질문 좀 해봐도 될까요?'을'

'으로 변경해야한다는 것을 의미합니까? – Learner

+0

브라우저에서 웹 응용 프로그램에 전화하십시오. 거기에 소스 코드를 표시하고 두 테이블의 HTML 소스 코드를 질문에 붙여 넣으십시오. 그런 다음 게시물에서 JSP 코드를 제거하십시오. – reporter

답변

0

하지 최적의 솔루션의 코드 만 작동의 코드.

은 그냥 사용하는 테이블을 정의 할 수있는 기능을 사용 다른 이름을 복사합니다. 예 :

<display:columntitle="<input type='checkbox' name='selectall' id='clickAll_Admin'/>"><s:checkbox theme="simple" name="chkdownload_Admin" fieldValue='%{#attr.row.recordId}' /></display:column> 


    <display:columntitle="<input type='checkbox' name='selectall' id='clickAll_Sec'/>"><s:checkbox theme="simple" name="chkdownload_Sec" fieldValue='%{#attr.row.recordId}' /></display:column> 
+0

실제로 기능을 복사 할 필요가 없습니다. 그냥 독특한 id-s. –