我有一个js代码:
window.onload = function() {
document.getElementById("Button1").onclick = function() {
var t1 = document.getElementById("Text1").value;
var t2 = document.getElementById("Text2").value;
document.URL = 'myurl?t1=' + t1 + '&t2' + t2;
}
}
这里我添加t1,t2作为查询参数..现在我的问题是让我说我已经在Textbox1中输入了一些数据而不是在textbox2中输入,在这种情况下我得到的网址是
'myurl?t1=' + value of textbox1 + '&t2' + This will be blank;
我想让它变得动态,即如果Textbox2中没有值,那么我不想附加queryparam t2,同样适用于t1也可以。可能吗?
答案 0 :(得分:2)
使用if
条款。
var url = "";
if (t1)
url += "&t1=" + encodeURIComponent(t1);
if (t2)
url += "&t2=" + encodeURIComponent(t2);
document.URL = "myurl" + url.replace(/^&/, "?");
甚至更好,根本不使用JavaScript 。只需使用action="get"
的表单即可。这正是他们的目的。
答案 1 :(得分:0)
document.URL = 'myurl?t1=' + t1 + (''!=t2 ? '&t2' + t2 : '');
简单地说,使用(?true:false)逻辑结构来测试var t2是否为空。如果它不是空的,请添加到document.URL '&t2'+t2
,否则不传递任何内容。
答案 2 :(得分:0)
document.URL ='myurl?t1 ='+ t1 +(t2?'& t2'+ t2:'');
答案 3 :(得分:0)
我个人使用此功能来创建查询:
function CreateQuery(URL, D) {
// Returns a URL in format "URL?Key1=Value1&Key2=Value2"
var L = [];
for (var k in D) {
if (!D.hasOwnProperty(k)) continue;
var eK = encodeURIComponent(k);
var eV = encodeURIComponent(D[Key]);
L.push(eK+'='+eV);
}
if (L.length)
return URL+'?'+L.join('&');
return URL;
}
要使用它,你可能会去:例如:
var q = {};
if (t1) q['t1'] = t1;
if (t2) q['t2'] = t2;
window.location = CreateQuery('myurl', a);
(或者使用<form>
,这可能是另一个用户建议的更好选择: - )