如何在javascript中向URL添加文本输入变量

如何在javascript中向URL添加文本输入变量,javascript,c#,html,asp.net,asp.net-mvc,Javascript,C#,Html,Asp.net,Asp.net Mvc,我现在遇到了最奇怪的问题。我有这个JS代码: function CreateChat() { var chatName = document.getElementById("chatName").value; window.location.href = "https://localhost:44321/CreateNewChat/CreateChat?ChatName=" + chatName; } 事实上,我不能让它工作。它显然应该调用一个控制器方法,但它就

我现在遇到了最奇怪的问题。我有这个JS代码:

    function CreateChat() {
    var chatName = document.getElementById("chatName").value;
        window.location.href = "https://localhost:44321/CreateNewChat/CreateChat?ChatName=" + chatName;
}
事实上,我不能让它工作。它显然应该调用一个控制器方法,但它就是不起作用。如果我在项目运行时点击该url,并在其末尾添加任何内容,比如,test name变量将毫无问题地到达控制器。如果我将代码硬编码为“TestName”,而不是传递我之前定义的chatName变量,那么它将到达控制器,没有问题。该死,如果我调试脚本,chatName变量将正确地加载到我的输入中,如果我将console.log url正确地显示出来(事实上,我可以复制/粘贴该url,它将正确地命中控制器方法)。但是,正如上面介绍的代码,它无论如何都不会击中控制器。它将到达该点,并像在JS代码中出现错误一样削减执行。你们有什么想法吗?真的,我快疯了

以防万一,我是这样定义HTML中的文本输入的:

<input type="text" required class="form-control" id="chatName" aria-describedby="nameHelp" placeholder="Name your chat!">


编辑:聊天室名称上的encodeURIComponent也不起作用。

尝试使用
窗口。改为使用
\u self
打开

window.open ('https://localhost:44321/yadayada','_self',false);
您有一个提交按钮(我假设此按钮位于
表单中
)。。。单击“提交”按钮时,表单将提交到表单的“提交”操作,这是“提交”操作的默认行为

现在,如果不希望提交页面,可以将按钮类型更改为
按钮

<button type="button" onclick="CreateChat()" class="btn btn-primary">Create a New Chat!</button>
function CreateChat(event) {
    e.preventDefault(); // <-- don't submit the form
    var chatName = document.getElementById("chatName").value;
        window.location.href = "https://localhost:44321/CreateNewChat/CreateChat?ChatName=" + chatName;
}
您需要将
事件
传递到
CreateChat
功能:

<button type="submit" onclick="CreateChat(event)" class="btn btn-primary">Create a New Chat!</button>
创建一个新的聊天室!

此外,控制台上没有显示错误。另外2:保留输入empy将使其正常工作(显然,将空聊天名称传递给控制器方法)。您是否检查了通过开发工具中的网络选项卡是否有任何请求?如何调用
CreateChat
函数?在你更改
窗口之前,可能提交的页面不同。位置
伙计,我没有任何线索。我复制了你的函数并在本地进行了尝试;成功了。我唯一的理论是,它正在生成一些奇怪的无效URL,而你的浏览器不想去那里。此外,这里还有一些提示:当您获取用户输入并将其放入URL时,请始终使用
encodeURIComponent
。还可以考虑将函数的情况更改为<代码> CureTalk < /Cord>,因为这更符合JavaScript的其余部分。但这只是我的建议,不是规则!