2012-07-24 3 views
0

링크 목록의 sharepoint 2010 새로운 양식에서 콘텐츠 편집기 웹 파트를 만들고이 jquery 코드를 넣어 첨부 파일의 파일 이름을 가져옵니다 (사용자가 첨부 한 경우).sharepoint 2010 - 첨부 파일 이름을 가져 오는 jquery 코드

본질적으로 링크 주문 목록을 문서 주문 기능을 활용하기 위해 문서 라이브러리로 전환하려고합니다. 그것은 기본적 첨부 파일 이름에 열 필드의 값을 변경 저장 버튼에 마우스 다운 이벤트를두고

<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 

<script type="text/javascript"> 
    $('.ms-ButtonHeightWidth').eq(2).mousedown(function (event) { 
     var my_array = $(".ms-vb"); 
     for (var i=0; i<my_array.length; i++) { 
      text = $(my_array[i]).html(); 
      text = text.substring(1, text.length); 
      text = text.substring(text.indexOf(">")+1, text.indexOf("<")); 
      filename = text.substr(text.lastIndexOf("\\")+1); 
      document.getElementById('ctl00_m_g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806_ctl00_ctl05_ctl03_ctl00_ctl00_ctl04_ctl00_ctl00_TextField_inplacerte').innerHTML = filename; 
     } 
    }); 
</script> 

:

내가 새로운 form.aspx 페이지에서 사용하고있는 코드입니다. 저장 기능이 발생하기 전에 마우스를 내려야하기 때문입니다. 이 후 워크 플로가 발생하고이 열 필드 값을 문서에 대한 하이퍼 링크로 변경합니다.

위의 코드에 결함이 없는지 알고 싶습니다. 내가 사용하는 것이 안전하고 언제까지 깨지 않을 것인가? 현재 그것은 나를 위해 작동합니다.

편집 : (이 새로운 형태로 저장 버튼에 대한 코드)

<input name="ctl00$m$g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem" class="ms-ButtonHeightWidth" id="ctl00_m_g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806_ctl00_toolBarTbl_RightRptControls_ctl00_ctl00_diidIOSaveItem" accessKey="O" onclick="if (!PreSaveItem()) return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$m$g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem", "", true, "", "", false, true))" type="button" target="_self" jQuery17203303955991604388="1" value="Save"/> 

답변

0

나는 그것이 가능한 함수가 발생 저장하기 전에 마무리하지 않음으로써 문제를 가지고 볼 수 있었다. 가능한 경우 버튼의 기본 전송 핸들러를 event.preventDefault();으로 대체 한 다음 코드가 완료된 후 기본 submit 함수를 호출하십시오.

편집 : 작동 할 수 코드 :

$('.ms-ButtonHeightWidth').eq(2).click(function (event) { 
    // Stop default save function 
    event.preventDefault(); 

    // Add in filename of attachment 
    var my_array = $(".ms-vb"); 
    for (var i=0; i<my_array.length; i++) { 
     text = $(my_array[i]).html(); 
     text = text.substring(1, text.length); 
     text = text.substring(text.indexOf(">")+1, text.indexOf("<")); 
     filename = text.substr(text.lastIndexOf("\\")+1); 
     document.getElementById('ctl00_m_g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806_ctl00_ctl05_ctl03_ctl00_ctl00_ctl04_ctl00_ctl00_TextField_inplacerte').innerHTML = filename; 
    } 

    // Run default save function 
    if (PreSaveItem()) { 
     WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$m$g_0440ff9f_32fb_44b5_8b6d_a9055bcb9806$ctl00$toolBarTbl$RightRptControls$ctl00$ctl00$diidIOSaveItem", "", true, "", "", false, true)); 
    } 
}); 
+0

내가 위의 저장 버튼의 코드를 넣어, 당신은 어떻게이 작업을 수행하는 저를 보일 수 있는가? – omega

+0

위의 편집에서 코드를 사용해보십시오. 클릭 이벤트로 변경 한 다음 기본 클릭 이벤트를 중지하고 코드를 실행했습니다. 당신의 버튼의 onclick 애트리뷰트에서 코드를 옮기면 실행됩니다. 버튼에서 사용하는 ID가 실제로 동적이지 않기를 바라고 있습니다. – Ben

관련 문제