代码之家  ›  专栏  ›  技术社区  ›  pattmorter

如何提交带有连接URL的表单?

  •  0
  • pattmorter  · 技术社区  · 11 年前

    我对整个Javascript场景还相当陌生。接下来是代码学院提供的在线javascript教程,所以我将学习我在那里学到的东西以及我在其他教程中读到的东西。阅读其他一些帖子,试图帮助我,但我无法理解

    所以我的问题是,

    我试图接受一个表单输入,将其发送到一个javascript文件,然后javascript文件返回一个字符串,然后我希望用它重新加载框架。我正试图为我和我的朋友们做一个简单的镀铬扩展。

    当我点击“查看成绩!”时,我会得到一个错误:

    No webpage was found for the web address: chrome-extension://gcgddggimojbfgpbdmpfkmiofmpinjgb/location.href=getURL(account)?
    

    我无法确定我的javascript是否工作不正常,或者我只是不知道如何发送到“chrome”(我称之为)世界之外的URL。

    这是我的html文件:

    <form action="location.href=getURL('account')">
        PSU Account (i.e. xyz123): <input type:"text" id="account">
       <input type="submit" value="View Grade!">
    </form>
    

    这是我的javascript文件:

    function getURL(account) {
        var psuAccount = document.getElementById(psuAccount);
        // I changed strA to the ***.***.*** for this post
        var strA = 'https://***.***.***/section/Gradebook/Student/default.aspx?userId=';
        var strB = '&reportMode=true';
        var newURL = strA + psuAccount + strB);
        return(newURL);
    }
    
    1 回复  |  直到 11 年前
        1
  •  1
  •   Ian    11 年前

    我认为这正是 <form> s代表。。。像这样的东西不需要Javascript。尝试:

    <form action="https://***.***.***/section/Gradebook/Student/default.aspx" method="GET">
        PSU Account (i.e. xyz123): <input type="text" name="userId" />
        <input type="hidden" name="reportMode" value="true" />
        <input type="submit" value="View Grade!" />
    </form>
    

    提交机制将自动使用 action 属性。由于 method 是“GET”,它还将为中的元素添加键/值对的查询字符串 <形式> 用一个 name 属性因此,对于您的表单,它将添加一个密钥“userId”,该值在提交时作为文本框的当前值。它还将添加一个值为“true”的键“reportMode”。因此,将提交的最终URL是:

    https://***.***.***/section/Gradebook/Student/default.aspx?userMode=true&userId=SOME_INPUT_STRING
    

    如果您需要使用Javascript,请尝试:

    <div>
        PSU Account (i.e. xyz123): <input type:"text" id="account" />
        <input type="button" value="View Grade!" onclick="getURL();" />
    </div>
    

    与:

    function getURL() {
        var psuAccount = document.getElementById("account").value;
        var strA = 'https://***.***.***/section/Gradebook/Student/default.aspx?userId=';
        var strB = '&reportMode=true';
        var newURL = strA + psuAccount + strB;
        window.location.href = newURL;
    }