2016-08-23 57 views
5

Trong biểu mẫu SharePoint được CSR (Hiển thị phía máy khách) ghi đè.Chuyển hướng sau biểu mẫu Gửi (CSR)

Tôi đã thử thêm nút mới hoạt động khá giống với nút Lưu ngoại trừ nút chuyển hướng đến một biểu mẫu khác có thông số nhất định.

Vấn đề là chuyển hướng không hoạt động. Tôi đã thử chuyển hướng bằng cách thay đổi thuộc tính "hành động" của biểu mẫu nhưng dường như nó không được tính.

Đây là nút mới: <input id="custom_addLine" type="button" name="custom_addLine" value="+" class="ms-ButtonHeightWidth">

Dưới đây là chức năng gọi bằng nút và phương pháp addLine sau:

$('#custom_addLine').click(function(event){ 
    event.preventDefault(); 
    addLine(getQueryStringParameter('ID')); 
}); 


function addLine(id) { 
    if(!PreSaveItem()) { 
     return false; 
    } 
    var actionUrl = "/Lists/PurchaseRequestLine/NewForm.aspx?PurchaseRequestID="+ id; 
    var encodedActionUrl = encodeURIComponent(actionUrl); 

    var newFormAction = location.pathname + '?Source=' + encodedActionUrl; 
    $('#aspnetForm').attr('action',newFormAction); 

    if(SPClientForms.ClientFormManager.SubmitClientForm('WPQ1')){ 
     return false; 
    } 
    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('custom_addLine', "", true, "", "", false, true)); 
} 

getQueryStringParameter là một chức năng tùy chỉnh thực hiện để lấy thông số từ URI (mà công trinh).

Phần khó khăn là tôi muốn giữ lại URI hành động mặc định trong trường hợp nút Lưu ban đầu được nhấp vào, đó là lý do tại sao thông số hành động được sửa đổi khi đang di chuyển.

Trả lời

4

Bạn có thể thay đổi các thuộc tính Source trực tiếp từ hành động ban đầu:

function addLine(id) { 
    if(!PreSaveItem()) { 
     return false; 
    } 

    var oldActionUrl = $('#aspnetForm').attr('action'); 
    var oldSource = GetUrlKeyValue("Source", true, oldActionUrl); 

    var newSource = "/Lists/PurchaseRequestLine/NewForm.aspx?PurchaseRequestID="+ id; 

    var newActionUrl = oldActionUrl.replace(oldSource, encodeURIComponent(newSource)); 

    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('custom_addLine', "", true, "", newActionUrl, false, true)); 
} 
+0

Điều này sẽ vẫn gửi biểu mẫu đến cùng một vị trí? Tôi có nghĩa là ban đầu chuyển hướng SharePoint sau khi gửi bằng cách sử dụng tham số "Nguồn" được đưa ra trong URI là có bất kỳ cách nào để chuyển hướng ở nơi khác hơn là nơi tham số Nguồn được chỉ ra? – Hybris95

+0

Thông số nguồn ban đầu có được lưu trữ Trong tác vụ biểu mẫu gốc không? Khi bạn khôi phục lại hành động ban đầu, lần gửi tiếp theo sẽ dẫn đến cùng (tùy thuộc vào giá trị đầu vào) – aprovent

+0

Tôi không chắc chắn sẽ hiểu được vấn đề. Việc thay đổi hành động biểu mẫu có hoạt động không? Nếu không, phản hồi của tôi có thể giúp bạn, nếu không thì thuộc tính Nguồn của bạn không hoạt động? – aprovent

2

Hãy remove event.preventDefault(); từ mã của bạn, trách nhiệm chuyển hướng không hoạt động

$('#custom_addLine').click(function(event){  
addLine(getQueryStringParameter('ID')); 
}); 
Các vấn đề liên quan