1

我可能遗漏了一些基本的东西,但是我在 html 中有一个文本框,我希望用户向其中添加一些文本,当他们单击一个按钮时,它会添加到 url:

例如

<form id="discount_code" action='' method='get'>
    <input type='text' name='code' id='code' placeholder='Enter a discount code..'></>
    <input type="button" class='small-button' id='useCode' value='Use Code' onClick="parent.location='www.url.com?id=32&code=< TEXT ENTERED HERE >'" />
</form>

有什么办法可以让它与 jQuery 更改事件或类似事件一起使用?我搜索并发现了许多类似的建议,但似乎没有任何效果。我需要它以 GET 格式传递给 url。它还最好需要在有人粘贴文本的情况下工作。

谢谢

4

5 回答 5

1

GET 将自动将参数放在标题中。

因此,如果您将表单的操作更改为 www.url.com,如下所示:

<form id="discount_code" action='//www.url.com' method='get'> 
<input type='text' name='code' id='code' placeholder='Enter a discount code..' />         
<input type="button" class='small-button' id='useCode' value='Use Code' /> 
</form>

..这应该将任何放入代码中的内容附加到 URL 中。至于放入 id,您可以创建一个隐藏元素或其他类似的输入:

<form id="discount_code" action='//www.url.com' method='get'> 
<input type='text' name='code' id='code' placeholder='Enter a discount code..' /> 
<input type='hidden' name='id' value='23' />        
<input type="button" class='small-button' id='useCode' value='Use Code' /> 
</form>
于 2012-09-23T18:49:36.393 回答
0

您错过了网址前面的 http://。当您使用 www 启动 url 时,浏览器假定它与当前 url 相关。

<form id="discount_code" action='' method='get'> 
<input type='text' name='code' id='code' placeholder='Enter a discount code..' />
<input type="button" class='small-button' id='useCode' value='Use Code' onClick="parent.location='http://www.url.com?id=32&code=< TEXT ENTERED HERE >'" /> </form>
于 2012-09-23T18:42:18.643 回答
0
$(function(){
    $('#useCode').click(function(){
        var code = encodeURI($('#code').val())
        parent.location = 'http://www.url.com?id=32&code=' + code;
    });
});
于 2012-09-23T18:46:36.350 回答
0
$("#discount_code").submit(function(e){
  var data = $(this).serialize();
  e.preventDefault();

  top.location = 'http://example.com/?code='+data.code;
});
于 2012-09-23T18:48:53.753 回答
0

您可以获取 url,添加文本框值,然后像这样重定向到新的 url。该页面将刷新。

    var url = document.URL;
    window.location = url + $('#textboxID').val();​
于 2012-09-23T18:50:47.393 回答