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

时间:2013-03-25 20:28:41

标签: javascript google-chrome-extension

我对整个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 个答案:

答案 0 :(得分:1)

我认为这正是<form>的用途......不需要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”,因此它还会为<form>中具有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;
}