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