2012-04-26 106 views
0

這是我的代碼。在插入查詢觸發後,我在代碼中調用JavaScript函數。但是我得到錯誤「函數之外的返回語句」。函數外返回語句(javascript錯誤)

ClientScript.RegisterStartupScript(GetType(), "id", "return showPatientInfo('" + txtPatientID.Text + "');",true); 

function showPatientInfo(pid) { 
    //alert(pid); 
    RedirectToPage("Create_Order.aspx", "pid=" + pid); 
    return false; 
} 

回答

1

所以我真的很想把你的代碼改寫成更習慣的javascript。在這個過程中,我發現formBypassQueryString變量永遠不會被分配,這可能會導致問題。這裏是我的版本

function showPatientInfo(pid) { 
    redirectToPage("Create_Order.aspx", "pid=" + pid); 
    return false; 
} 

function redirectToPage(pageName, queryString) { 
    if (pageName === "" || queryString === "") return; 

    var keyValues = queryString.split("&"), 
     form = createQueryStringForm(pageName); 

    for (var i = 0; i < keyValues.length; i++) { 
    var keyValue = keyValues[i].split("="), 
     field = createQueryStringField(keyValue[0], keyValue[1]); 

    form.appendChild(field); 
    } 

    form.submit(); 
} 

function createQueryStringField(name, value){ 
    var field = document.createElement('input'); 

    field.setAttribute('type', 'hidden') 
    field.setAttribute('name', name) 
    field.setAttribute('value', value) 

    return field; 
} 

function createQueryStringForm(pageName){ 
    var form = document.createElement('form'); 

    form.setAttribute('id', 'form-bypass-query-string'); 
    form.setAttribute('method', 'POST'); 
    form.setAttribute('action', pageName); 

    return form; 
} 
+0

MATT嗨,我已經申請我們的代碼,但得到同樣的錯誤「return語句的功能之外」 – harsh 2012-04-26 07:11:56

+0

@harsh:其他然後,變量沒有被定義(這將導致一個錯誤,但是不知道你得到了),你的代碼沒有什麼技術上的錯誤。 – 2012-04-26 07:17:11

+0

:當我從代碼後面移除return語句後面的.ClientScript.RegisterStartupScript(GetType(),「id」,「return showPatientInfo('」+ txtPatientID .Text +「');」,true); ....代碼執行正常,但得到錯誤「對象不支持此屬性或方法」..當我添加返回語句,然後給我錯誤「返回語句之外的函數」..我認爲應該我的語法是正確的我從代碼隱藏 – harsh 2012-04-26 07:23:44