背景:DJANGO开发
在实现一个功能时遇到一个这样的问题。select的标签默认总是第一个值,重新刷新页面时,又会默认选择第一个值,而我想实现选择一个标签然后拼接成一个url?zone=bj,之后发送一个GET请求后,刷新页面后,标签选择在刚刚选中的标签。以下分别是JQUERY代码,和后端DJANGO的模板语言。
解决方法:
其实很简单,每次刷新后,重新渲染时,只要加个语句判断选择标签在哪个位置,VIEW函数渲染时会传递一些值过来。用DJANGO模板语言判断一下后端传递过来的值,是哪个标签则在那个标签内添加一个值selected
<select class="form-control" name="zone" id="select-zone">
<option value="tj" {% if zone == "tj" %}selected{% endif %}>天津</option>
<option value="bj" {% if zone == "bj" %}selected{% endif %}>北京</option>
</select>
//提取select 中标签值做GET请求,location.href 充填在url框做访问,windows.location.pathname获得当前页面完整URL
//$().serialize()可以将input,select,form等内容序列化为查询json字符串传递。
/*********************************************/
$("#select-zone").change(function() {
var zone = $("#select-zone").serialize();
console.log(zone);
var pathname = window.location.pathname
if(zone){
console.log("ggggggggg")
location.href = pathname + "?" + zone;
}
/*ajax 提交get。
$.ajax({
type: "GET",
async: false,
cache: false,
url: window.location.href ,
data: zone,
success: function (data) {
console.log("good get!!!!")
},
}
);
*/
});