Javascript 使用Jquery将字段输入值作为查询字符串附加到url

Javascript 使用Jquery将字段输入值作为查询字符串附加到url,javascript,jquery,forms,onclick,query-string,Javascript,Jquery,Forms,Onclick,Query String,我相信我大部分都有这个权利,但可能会打乱秩序,并且由于某种原因无法得到一把小提琴来保存。基本上,我需要获取表单输入的一部分,并在提交时将其作为查询字符串附加,以便在下一页触发附属cookie。所有代码都以AAA-11值开始,然后是实际的附属机构参考代码。所以 <form> <label>Affiliate Code</label> <input type="text" id="code"> <input type

我相信我大部分都有这个权利,但可能会打乱秩序,并且由于某种原因无法得到一把小提琴来保存。基本上,我需要获取表单输入的一部分,并在提交时将其作为查询字符串附加,以便在下一页触发附属cookie。所有代码都以AAA-11值开始,然后是实际的附属机构参考代码。所以

<form>
    <label>Affiliate Code</label>   
    <input type="text" id="code">
    <input type="submit" id="submit_btn">        
</form>

我在这里遗漏了什么?

您的按钮正在提交表单,因为它的属性
type=“submit”

您可以将属性更改为
type=“button”
,或使用编程方式阻止表单提交,以便修改数据

$('#submit_btn').on('click', function(event) {
    event.preventDefault();
    var str = $('#code').val();
    var acode = str.substr(6);
    location.href = location.href + "?ref=" + acode;
});

[编辑](评论)

如果您需要修改表单
操作
并提交表单,请使用以下命令:

$('#submit_btn').on('click', function(event) {
    event.preventDefault();
    var str = $('#code').val();
    var acode = str.substr(6);
    // change form action attribute and submit the form:
    $(this).closest('form').attr('action', location.href + "?ref=" + acode).submit();
});

谢谢,有道理!但是我怎么能让它在几秒钟后提交呢?或者,在用户填写输入后立即包含查询字符串live?我不确定是否理解您的意思。可能类似于:
if(!$('#code').val(){event.preventDefault()}
?我的意思是preventDefault()将阻止提交。。但是我仍然需要提交表单。然后您可以将
preventDefault()
放在一个简单的
if
语句中,以确定是否应该提交表单,就像我之前的评论一样。当然,如果您设置的
条件符合您的需要。。。顺便说一句,输入字段没有
名称
,因此不会被提交。此外,您还可以直接在javascript中使用cookies(如果您在当前页面上需要它们)。至于JSFIDLE,当javascript部分包含
location.
code时,您无法保存它。我理解条件部分,但可能preventDefault不是最好的方法。我希望它像这样工作:用户在mysite.com/stuff上填写表单,在其他值中填写附属代码,单击提交>查询字符串参数,因此url现在是mysite.com/stuff?ref=code,然后提交表单,并将参数传递到确认页面,在该页面上,附属软件像素或脚本将读取它,就像有人来自标准附属链接一样(附属系统是第三方软件)。对不起,如果我之前不清楚的话。
$('#submit_btn').on('click', function(event) {
    event.preventDefault();
    var str = $('#code').val();
    var acode = str.substr(6);
    // change form action attribute and submit the form:
    $(this).closest('form').attr('action', location.href + "?ref=" + acode).submit();
});