我正在创建这样的代码:
var ds = "ds=" + encodeURIComponent($('#DataSource').val());
var ex = "ex=" + encodeURIComponent($('#EID').val());
var to = "to=" + encodeURIComponent($('#TID').val());
var st = "st=" + encodeURIComponent($('#SID').val());
window.location.href = '/person?' + ds + "&" + ex + "&" + to + "&" + st;
在Javascript中是否有某些方法可以使用格式化来使代码看起来更清晰?我还需要对每个元素进行编码,还是只需对变量abc进行编码?
答案 0 :(得分:1)
你真的没有太多可以做的事情。你可以为encodeURIComponent
方法添加别名,如果你正在寻找一些一点的东西,可以使用join()
数组:
var e = encodeURIComponent,
arr = [
"ds=" + e($('#DataSource').val()),
"ex=" + e($('#EID').val()),
"to=" + e($('#TID').val()),
"st=" + e($('#SID').val())
];
window.location.href = '/person?' + arr.join("&");
答案 1 :(得分:0)
使用<form>
并将输入标记放入其中,然后拨打$('formContainer').serialize();
在向URI发送数据时,最好使用名称 - 值对(查询字符串)。为您要捕获的所有输入标记提供名称作为id。你会得到类似的东西:
/人/数据源= DS&安培; EID = EX&安培; TID =至&安培; SID = ST
-HTH
答案 2 :(得分:0)
你为什么不写:
window.location.href = encodeURIComponent('/person?' +
$('#DataSource').val() + "&"
+ $('#EID').val() + "&" + $('#TID').val() + "&"
+ $('#SID').val());
答案 3 :(得分:0)
答案 4 :(得分:0)
var str = "/person?ds=%x&ex=%x&to=%x&st=%x";
var tokens = [
$("#DataSource").val(),
$("#EID").val(),
$("#TID").val(),
$("#SID").val()
];
tokens.forEach(function (token) {
str = str.replace("%x", encodeURIComponent(token));
});
location.href = str;
如果您的令牌字符串中有%x
,这绝对会失败。
如果您想要更通用的解决方案,请尝试underscore.string