有没有办法使用 javascript/Jquery 将未提交的输入字段的值属性作为 URL 的参数传递?
Is there a way to pass the value attribute of an unsubmitted input field as a parameter of a URL using javascript/Jquery?
我正在尝试检索一个未提交的输入字段的值属性作为 URL 那个 opens/saves 一个 excel 文件的参数。参数应该用于过滤 excel 文件。
我尝试使用 for() 循环将参数保存到数组中,然后继续使用 append() 方法将它们添加到 url 的末尾。
下面的代码显示了我如何尝试一个接一个地单独附加每个参数
var url = new URL("file:database/reports/getCurrentStorageOverview.php?params=excel");
var query_string = url.search;
var search_params = new URLSearchParams(query_string);
search_params.append('params', $("#searchParameter1").val());
search_params.append('params', $("#searchParameter2").val());
search_params.append('params', $("#searchParameter3").val());
search_params.append('params', $("#searchParameter4").val());
url.search = search_params.toString();
var new_url = url.toString();
window.open("database/reports/getCurrentStorageOverview.php?params=excel");
console.log(new_url);
参数应该添加到 url 的末尾,但是控制台一直告诉我值属性未定义/当我尝试使用数组时它用 4 填充数组"undefined(s)"
这是一种不同的方法,但由于我没有测试过你的方法,我可以向你展示我通常在这种情况下使用的方法:
const querify = obj => {
return Object.keys(obj)
.map(key => {
if (typeof obj[key] === 'object') {
return querify(obj[key])
} else {
return `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`
}
})
.join('&') }
这是做什么的,它需要一个像
这样的对象
var filters = { page: 1, length: 10, sortBy: 'id', etc... }
并将其转换为类似于 "page=1&length=10&sortBy=id" 等的查询字符串,因此您可以像这样使用它:
var url = `database/reports/getCurrentStorageOverview.php?${querify(filters)}`
我正在尝试检索一个未提交的输入字段的值属性作为 URL 那个 opens/saves 一个 excel 文件的参数。参数应该用于过滤 excel 文件。
我尝试使用 for() 循环将参数保存到数组中,然后继续使用 append() 方法将它们添加到 url 的末尾。 下面的代码显示了我如何尝试一个接一个地单独附加每个参数
var url = new URL("file:database/reports/getCurrentStorageOverview.php?params=excel");
var query_string = url.search;
var search_params = new URLSearchParams(query_string);
search_params.append('params', $("#searchParameter1").val());
search_params.append('params', $("#searchParameter2").val());
search_params.append('params', $("#searchParameter3").val());
search_params.append('params', $("#searchParameter4").val());
url.search = search_params.toString();
var new_url = url.toString();
window.open("database/reports/getCurrentStorageOverview.php?params=excel");
console.log(new_url);
参数应该添加到 url 的末尾,但是控制台一直告诉我值属性未定义/当我尝试使用数组时它用 4 填充数组"undefined(s)"
这是一种不同的方法,但由于我没有测试过你的方法,我可以向你展示我通常在这种情况下使用的方法:
const querify = obj => {
return Object.keys(obj)
.map(key => {
if (typeof obj[key] === 'object') {
return querify(obj[key])
} else {
return `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`
}
})
.join('&') }
这是做什么的,它需要一个像
这样的对象var filters = { page: 1, length: 10, sortBy: 'id', etc... }
并将其转换为类似于 "page=1&length=10&sortBy=id" 等的查询字符串,因此您可以像这样使用它:
var url = `database/reports/getCurrentStorageOverview.php?${querify(filters)}`