Javascript 输入:{FilterField0:'名称',FilterValue 0:'弗雷德', //FilterField1:'age',FilterValue 1:'30'} //输出:{name:'Fred',age:'30'} 函数buildFilterFieldMap(parameterMap){ var maxFieldCount=15; var-map={}; 对于(变量i=0;i值构建映射 var parameterMap=buildParameterMap(queryString); //从搜索字段名称->值构建地图 var filterFieldMap=buildFilterFieldMap(parameterMap); Object.keys(filterFieldMap).forEach(函数(字段){ $('#'+字段).val(filterFieldMap[field]); }); } populateSearchFields(“?FilterField0=locations&FilterValue0=US&FilterField1=dropdown1&FilterValue1=b”) 期刊关键词 1950 2010 2017 奥迪 标题 测试文件 T 本地货币 美元 位置 美国 英国 下拉列表1 A. B 下拉列表2 aa bb 复写的副本 dd 搜索
如果您不关心Internet Explorer或Edge,请使用此选项。 加载页面后,您可以在的帮助下读取搜索参数。下面是让您开始的代码 请注意,此解决方案取决于表单参数的ID是否等于小写搜索参数的名称Javascript 输入:{FilterField0:'名称',FilterValue 0:'弗雷德', //FilterField1:'age',FilterValue 1:'30'} //输出:{name:'Fred',age:'30'} 函数buildFilterFieldMap(parameterMap){ var maxFieldCount=15; var-map={}; 对于(变量i=0;i值构建映射 var parameterMap=buildParameterMap(queryString); //从搜索字段名称->值构建地图 var filterFieldMap=buildFilterFieldMap(parameterMap); Object.keys(filterFieldMap).forEach(函数(字段){ $('#'+字段).val(filterFieldMap[field]); }); } populateSearchFields(“?FilterField0=locations&FilterValue0=US&FilterField1=dropdown1&FilterValue1=b”) 期刊关键词 1950 2010 2017 奥迪 标题 测试文件 T 本地货币 美元 位置 美国 英国 下拉列表1 A. B 下拉列表2 aa bb 复写的副本 dd 搜索,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,如果您不关心Internet Explorer或Edge,请使用此选项。 加载页面后,您可以在的帮助下读取搜索参数。下面是让您开始的代码 请注意,此解决方案取决于表单参数的ID是否等于小写搜索参数的名称 $(文档).ready(()=>{ //将值改为window.location.href以使用浏览器的URL 常量href=”http://yourhost.com?FilterField0=locations&FilterValue0=US&FilterField1=dropdown1&Fi
$(文档).ready(()=>{
//将值改为window.location.href以使用浏览器的URL
常量href=”http://yourhost.com?FilterField0=locations&FilterValue0=US&FilterField1=dropdown1&FilterValue1=b";
//使用当前位置初始化URL对象
const url=新url(href);
//此数组将包含所有筛选器字段
常量键=[];
for(允许输入url.searchParams){
if(条目[0].startsWith(“FilterField”)){
按键。按键(输入[0]);
}
}
keys.forEach(字段=>{
//提取FilterField的索引
常量idx=字段[field.length-1];
//获取FilterField的值(这将为我们提供表单字段的ID)
const formField=url.searchParams.get(field.toLowerCase();
//使用.val()设置表单字段的值
$(“#”+formField.val(url.searchParams.get('FilterValue'+idx));
});
//剩下的代码在这里
});代码>
期刊关键词
1950
2010
2017
奥迪
标题
测试文件
T
本地货币
美元
位置
美国
英国
下拉列表1
A.
B
下拉列表2
aa
bb
复写的副本
dd
搜索
您可以使用“document.URL”获取当前URL,并将其拆分为var URL=document.URL;url=url.split('&');然后你可以得到一个带有你的值的数组。@OmarFaruque但是我可以使它更动态吗?,因为我的字段ID等于参数名。。。所以我不必一个接一个地对字段执行此操作。.从url获取值后,您可以像这样检查它(value!=''{$('input[name=“test”]').val(value);}changewindow.location.replace(“/teamsites/Bib%20Test/Forms/search.aspx?”+s)
到ajax,类似于$.get('/search/Bib%20Test/Forms/search.aspx?+s')。然后(函数(数据){refillSearchResult(数据)})
为什么要使用asp.net
标记?因为如果需要,您可以通过编程从代码隐藏中完成所有这些。请注意,URL
类型在IE中不可用,并且它的。searchParams
属性在Edge中不可用。感谢您的回复。现在您的方法在获取查询字符串方面似乎运行良好参数,但它无法填充字段..因此这行代码$('#'+detail[0]).val(detail[1])
没有按预期工作…当我从chrome检查它时,我找不到出现任何错误..我想问题是`$('#'+detail[0]))`将等于文本,如FilterField1
,而不是实际的参数名,如journal
。运行良好,非常感谢..将进行额外的测试,以检查是否一切正常。谢谢
<script type="text/javascript">
$(document).ready(function(){
$('#button').click(function(e) {
var count=1;
var s="";
var inputvalue = $("#journal").val();
var inputvalue2 = $("#keywords").val();
var inputvalue3 = $("#datepub").val();
var inputvalue4 = $("#title").val();
var inputvalue5 = $("#localcurrency").val();
var inputvalue6 = $("#locations").val();
var inputvalue7 = $("#dropdown1").val();
var inputvalue8 = $("#dropdown2").val();
if(inputvalue!=null && inputvalue!="")
{
s = s+ "FilterField"+count+"=Journal&FilterValue"+count+"="+inputvalue+"&";
count++;
}
if(inputvalue2!=null && inputvalue2!="")
{
s = s+ "FilterField"+count+"=KeyWords&FilterValue"+count+"="+inputvalue2+"&";
count++;
}
if(inputvalue3!=null && inputvalue3!="")
{
s = s+ "FilterField"+count+"=datepub&FilterValue"+count+"="+inputvalue3+"&";
count++;
}
if(inputvalue4!=null && inputvalue4!="")
{
s = s+ "FilterField"+count+"=Title&FilterValue"+count+"="+inputvalue4+"&";
count++;
}
if(inputvalue5!=null && inputvalue5!="")
{
s = s+ "FilterField"+count+"=localcurrency&FilterValue"+count+"="+inputvalue5+"&";
count++;
}
if(inputvalue6!=null && inputvalue6!="")
{
s = s+ "FilterField"+count+"=locations&FilterValue"+count+"="+inputvalue6+"&";
count++;
}
if(inputvalue7!=null && inputvalue7!="")
{
s = s+ "FilterField"+count+"=dropdown1&FilterValue"+count+"="+inputvalue7+"&";
count++;
}
if(inputvalue8!=null && inputvalue8!="")
{
s = s+ "FilterField"+count+"=dropdown2&FilterValue"+count+"="+inputvalue8+"&";
count++;
}
window.location.replace("/teamsites/Bib%20Test/Forms/search.aspx?"+s);
});
});
</script>
Journal <input type="text" id="journal">
keywords <input type="text" id="keywords">
<select id="datepub">
<option value=""></option>
<option value="1950">1950</option>
<option value="2010">2010</option>
<option value="2017">2017</option>
<option value="audi">Audi</option>
</select>
title
<select id="title">
<option value=""></option>
<option value="TestDoc">test doc</option>
<option value="t">t</option>
</select>
localcurrency
<select id="localcurrency">
<option value=""></option>
<option value="USD">USD</option>
</select>
locations
<select id="locations">
<option value=""></option>
<option value="US">US</option>
<option value="UK">UK</option>
</select>
dropdown1
<select id="dropdown1">
<option value=""></option>
<option value="a">a</option>
<option value="b">b</option>
</select>
dropdown2
<select id="dropdown2">
<option value=""></option>
<option value="aa">aa</option>
<option value="bb">bb</option>
<option value="cc">cc</option>
<option value="dd">dd</option>
</select>
<button type="button" id="button">search</button>
$(document).ready(function(){
$('#button').click(function(e) {
var count=1; //out of use
var s = []; //""; //empty array, not empty string
var inputvalue = $("#journal").val();
var inputvalue2 = $("#keywords").val();
var inputvalue3 = $("#datepub").val();
var inputvalue4 = $("#title").val();
var inputvalue5 = $("#localcurrency").val();
var inputvalue6 = $("#locations").val();
var inputvalue7 = $("#dropdown1").val();
var inputvalue8 = $("#dropdown2").val();
if(inputvalue) // !=null && inputvalue!="") //it is redundant. null and empty string are **falsey**
{
s.push('journal='+inputvalue);
//or if you wish to keep your existing format (not recommended because it would produce problems on the search page)
//s.push("FilterField"+count+"=Journal&FilterValue"+count+"="+inputvalue);
//count++;
}
if(inputvalue2) //!=null && inputvalue2!="")
{
s.push('keywords='+inputvalue2);
//for existing format see previous comment
//s = s+ "FilterField"+count+"=KeyWords&FilterValue"+count+"="+inputvalue2+"&";
//count++;
}
/*
//same for other vars
if(inputvalue3!=null && inputvalue3!="")
{
s = s+ "FilterField"+count+"=datepub&FilterValue"+count+"="+inputvalue3+"&";
count++;
}
if(inputvalue4!=null && inputvalue4!="")
{
s = s+ "FilterField"+count+"=Title&FilterValue"+count+"="+inputvalue4+"&";
count++;
}
if(inputvalue5!=null && inputvalue5!="")
{
s = s+ "FilterField"+count+"=localcurrency&FilterValue"+count+"="+inputvalue5+"&";
count++;
}
if(inputvalue6!=null && inputvalue6!="")
{
s = s+ "FilterField"+count+"=locations&FilterValue"+count+"="+inputvalue6+"&";
count++;
}
if(inputvalue7!=null && inputvalue7!="")
{
s = s+ "FilterField"+count+"=dropdown1&FilterValue"+count+"="+inputvalue7+"&";
count++;
}
if(inputvalue8!=null && inputvalue8!="")
{
s = s+ "FilterField"+count+"=dropdown2&FilterValue"+count+"="+inputvalue8+"&";
count++;
}
*/
window.location.replace("/teamsites/Bib%20Test/Forms/search.aspx?"+s.join('&')); //Use the array here
});
});
$(document).ready(function(){
var query = window.location.search.slice(1); //get ?.... less **?**
var terms = query.split('&'); //get pairs like key=value
for(var i = 0, term; term = terms[i]; ++i){ //loop the search terms
var detail = term.split('='); //journal=some
$('#'+detail[0]).val(detail[1]); //set the value provided fields have the same **id**s
}
});
<asp:TextBox ID="keywords" runat="server" ClientIDMode="Static"></asp:TextBox>
<form method="GET" action="/search.aspx">
<input type="text" name="keywords" />
<select name="localcurrency">
<option value="USD">US Dollar</option>
<option value="EUR">Euro</option>
</select>
<!--other fields -->
<input type="submit" value="Search" />
</form>
<%-- search.aspx --%>
<%@ Page Language="C#" %>
<!DOCTYPE html>
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Request.QueryString["keywords"] != null)
this.keywords.Text = Request.QueryString["keywords"];
if (!string.IsNullOrEmpty(Request.QueryString["localcurrency"]))
localcurrency.SelectedValue = Request.QueryString["localcurrency"];
//other request query strings
// DoSearch();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="keywords" runat="server"></asp:TextBox>
<asp:DropDownList runat="server" ID="localcurrency">
<asp:ListItem Value="USD">US Dollar</asp:ListItem>
<asp:ListItem Value="EUR">Euro</asp:ListItem>
</asp:DropDownList>
</div>
</form>
</body>
</html>