使用从文本框创建URL的按钮的表单

时间:2017-01-10 18:52:18

标签: javascript html

我在html中为一个简单的表单做了麻烦,对于我的论坛。 我有一个文本框和一个按钮。 文本框包含昵称。 我需要将用户重定向到包含URL网站+昵称的网站(例如http://www.heythere/nick/textboxnickname)。 问题是,使用我编写的代码,我的论坛再次将我重定向到它,方法是在文件夹中添加文本框和我的按钮的名称。

//Script
<script type="text/javascript"> 
  function levaSpazi() 
  { 
   var i=0; 
   var gt = document.getElementById("gt"); 
   var strLength = gt.length; 

   for(i; i<strlength; i++){ 
    gt = gt.replace(" ","%20"); 
   } 

   var indirizzo="http://xboxdvr.com/gamer/" + gt; 
   window.location*.href=indirizzo; 

   return false; 
  } 
</script> 


//HTML
<form name="Guarda" onSubmit="return levaSpazi();">
...
<input type="text" maxlength="15" name="gt" id="gt"> 
<input type="submit" name="guarda" value="Guarda">
...
</form>

当我保存此代码时,我正在使用的平台(forumfree.it)使用“window.location * .href”修改“window.location.href”

3 个答案:

答案 0 :(得分:2)

一个代码片段很高兴看到。重定向可能会发生,因为您设置了错误的type。您应该将其设置为type="button"

实际上,你真的不需要表格。这是一个例子:

function openURL()
{
    var name = document.getElementById('myName').value;
    var url = 'http://www.heythere/nick/' + encodeURIComponent(name);

    // In current window
    window.location.href = url;

    // In new window
    window.open(url);
}

在HTML中:

<input type="button" onclick="openURL()" value="Go"/>

但也许我弄错了。如果您想更改表单的action属性的URL(在发送之前),我想这可能会有效:

HTML:

<form data-url="http://www.heythere/nick/" action="" onsubmit="changeForm(event, this)">...</form>

JS:

function changeForm(e, formRef)
{
    // Prevent browser sending the form self
    e.preventDefault();

    var name = document.getElementById('myName').value;
    formRef.action = formRef.getAttribute('data-url') + encodeURIComponent(name);

    // Send
    formRef.submit();
}

我是通过手机发送的,无法测试,抱歉。但它应该像那样工作。

答案 1 :(得分:1)

使用提交表单的Javascript,在JS中为网址添加昵称并重定向。

但是我们不知道你使用什么(简单的HTML和PHP,ASP.NET或任何框架?)

使用JQuery:

$("your_form_selector").submit(function(){
    // var nickname = GetNickname
    $(this).attr("action", "your_new_url/" + nickname);
});

答案 2 :(得分:0)

您可以将事件监听器附加到您的按钮,并传递一个回调,该回调将您的网址与点击事件上的文本框值连接起来:

&#13;
&#13;
var nickname = document.getElementById("txt");
function redirect () {
  window.location.href = "https://heythere.com/nick/" + nickname.value;
};
document.getElementById("btn").addEventListener('click', redirect);
&#13;
<input type="text" id="txt" />
<input type="button" id="btn" value="Submit" />
&#13;
&#13;
&#13;