【问题标题】:JavaScript error "Return statement outside of function"JavaScript 错误“函数外的返回语句”
【发布时间】:2012-05-06 20:53:56
【问题描述】:

这是我的代码。插入查询触发后,我在代码中调用 JavaScript 函数。但我收到错误“函数外的返回语句”。

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

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

【问题讨论】:

    标签: javascript asp.net c#-4.0


    【解决方案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;
    }
    

    【讨论】:

    • 嗨,MATT,我已经应用了你的代码,但得到了同样的错误“函数外的返回语句”
    • @harsh:除了那个变量没有被定义(这会导致错误,但不是你得到的),你的代码在技术上没有任何问题。我的版本更接近 javascript 人做同样事情的方式 :)
    • :当我从后面的代码中删除返回语句时..ClientScript.RegisterStartupScript(GetType(), "id", "return showPatientInfo('" + txtPatientID.Text + "');",true) ; ....代码执行良好,但出现错误“对象不支持此属性或方法”..当我添加返回语句然后给我错误“函数外的返回语句”..我认为我的语法应该是正确的我从代码隐藏调用 javascript 函数
    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    相关资源
    最近更新 更多