簡體   English   中英

表單提交后重定向(CSR)

[英]Redirect after form Submit (CSR)

在CSR表單中覆蓋的SharePoint表單(客戶端呈現)。

我嘗試添加一個新按鈕,它與Save按鈕幾乎相同,只是它重定向到具有給定參數的另一個表單。

問題是,重定向不起作用。 我嘗試通過更改表單的“action”屬性來重定向,但似乎沒有計算。

這是新按鈕: <input id="custom_addLine" type="button" name="custom_addLine" value="+" class="ms-ButtonHeightWidth">

以下是按鈕調用的函數和addLine方法:

$('#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是一個自定義函數,用於從URI中檢索參數(可以工作)。

棘手的部分是我想保留默認操作URI,以防單擊原始的Save按鈕,這就是動態修改action參數的原因。

您可以直接從原始操作更改Source屬性:

 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));
}

刪除event.preventDefault(); 從你的代碼來看,它負責重定向不起作用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM