Javascript 为html表单GET方法添加附加文本
对表单使用“get”方法时Javascript 为html表单GET方法添加附加文本,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,对表单使用“get”方法时 <form action="domain.com" method="get"> Surname: <input type="text" name="ABC"><br> Name: <input type="text" name="DFG"><br> <input type="submit" value="Submit"> </form> 姓氏: 名称: 输
<form action="domain.com" method="get">
Surname: <input type="text" name="ABC"><br>
Name: <input type="text" name="DFG"><br>
<input type="submit" value="Submit">
</form>
姓氏:
名称:
输入将被发送到服务器上名为
domain.com/?ABC=姓氏&DFG=姓名
我的问题:如何编辑表单,使其能够将输入发送到名为
domain.com/?ABC=“姓氏”&DFG=“姓名”
(请注意两个输入周围的“”
请提供建议。谢谢!我相信您正在查找引号字符(U+0022),它在纯文本中是不允许的,必须编码为%22 我使用javascript将双引号字符添加到用户的输入中,然后它应该像以前一样提交表单操作
<script type="text/javascript">
beforeSubmit = function(){
var abc = document.getElementById("ABC").value;
document.getElementById("ABC").value = "%22" + abc + "%22";
var dfg = document.getElementById("DFG").value;
document.getElementById("DFG").value = "%22" + dfg + "%22"; //changes input field value
document.getElementById("formid").submit(); //submits the form
}
</script>
<form action="domain.com" method="get" id="formid">
Surname: <input type="text" name="ABC" id="ABC"><br>
Name: <input type="text" name="DFG" id="DFG"><br>
<input type="button" value="Click" onclick="beforeSubmit();" />
</form>
beforeSubmit=函数(){
var abc=document.getElementById(“abc”).value;
document.getElementById(“ABC”).value=“%22”+ABC+%22”;
var dfg=document.getElementById(“dfg”).value;
document.getElementById(“DFG”).value=“%22”+DFG+%22”;//更改输入字段值
document.getElementById(“formid”).submit();//提交表单
}
姓氏:
名称:
为什么需要在引号中引用这些内容
表单GET
中的网站应该能够理解您发送给它的表单输入,而不带引号。如果您确实需要在表单输入中添加引号(或任何其他内容),可以使用jQuery
差不多
$("form").submit(function(event) {
$.get('domain.com', { name: ..., surname: ...});
event.preventDefault();
});
见:
编辑:更多信息:
我没有足够的声誉来评论,所以我将扩展其他评论者在这里所做的。他几乎是对的,除了你需要添加引号字符(“)而不是“%22”,它将为你编码。它添加%25的原因是它实际上编码了百分比(%)字符!:D
根据Beau Bouchard的回答修改:
function (){
var abc = document.getElementById("ABC").value;
document.getElementById("ABC").value = "\"" + abc + "\"";
var dfg = document.getElementById("DFG").value;
document.getElementById("DFG").value = "\"" + dfg + "\""; //changes input field value
document.getElementById("formid").submit(); //submits the form
}
如果你能详细说明我是如何做到这一点的,我将不胜感激。对不起,我在这方面是新手。谢谢。我需要这些引号,因为我正试图链接到一个页面,从mysql数据库中提取数据,这取决于URL中变量的值,如果变量不在引号中,它就不起作用。看看这个更改是否有用,只要e编辑我的评论谢谢!刚刚尝试过,输出是domain.com?ABC=%2522SurnName%2522&DFG=%2522name%2522似乎有一个额外的“25”…嗯:没问题,您应该关闭此问题