django Forgienkey字段 在前台用js做处理
class Province(models.Model): # 省会
name = models.CharField(max_length=30)
class City(models.Model): #城市
name = models.CharField(max_length=30)
province = models.ForeignKey(Province)
前台代码:
<html>
<head>
<link rel="stylesheet" type="text/css" href="/site_media/css/imgareaselect-default.css" />
<script type="text/javascript" src="/site_media/scripts/jquery.min.js"></script>
<script type="text/javascript" src="/site_media/scripts/jquery.imgareaselect.pack.js"></script>
</head>
<form action="/addInfo/" method="post" name="" class="hform">
<fieldset>
<p><label><span style="color:red">*</span>选择分类</label>
<select name="province" id="province">
<option value="">请选择分类</option>
{% for province in provinces %}
<option value="{{ province.id }}">{{ province.name }}</option>
{% endfor %}
</select>
</p>
<p><label<span style="color:red">*</span>选择子类</label>
<select name="city" id="city">
</select>
</p>
<p><label><span style="color:red">*</span>标题</label>
<input type="text" name="title" id="title">
</p>
<p><input type="submit" name="submit" value="提交" class="button"></p>
</fieldset>
</form>
{% block js %}
<script lang="javascript">
$("#province").change(function (){
if($("#province").val() != ""){
$.getJSON("/getcity/", { category: $("#province").val() },
function(data){
$("#city").empty();
$("#city").append("<option value=\"\">请选择子类</option>");
if(data.length!=0){
$.each(data,function(i,n){
$("#city").append("<option value="+i+">"+n+"</option>");
});
}
});
}else{
$("#city").empty();
}
});
$("form").submit(function() {
if ($("#province").val() == "") {
alert("请选择分类");
$("#province").focus();
return false;
}
if ($("#city").val() == "") {
alert("请选择子类");
$("#city").focus();
return false;
}
});
后台:
def cityinfo(request):
provinces = Province.objects.all()
return render_to_response("cityform.html",locals())
def getcity(request):
provinceId = int(request.GET.get('category'))
province = Province.objects.get(id=provinceId)
citys = City.objects.filter(province=province)
data = {}
for city in citys:
data[city.id] = city.name
return HttpResponse(simplejson.dumps(data))
urls.py
(r'^province/$', views.cityinfo),
(r'^getcity/$',views.getcity),
django Forgienkey字段 在前台用js做处理的更多相关文章
- django的model字段在保存的时候做预处理怎么办?
django的model字段在保存的时候做预处理怎么办? 比如这个model: class Book(Model): publish_date = DateField() 但是在保存时,用户输入数据是 ...
- Octopus系列之如何让前台的js脚本变得灵活重用
Octopus系列如何让前台的js脚本变得灵活,重用 方式1:ajax方式 方式2:form表单方式 面向对象的脚本封装 jQuery的封装 做Web开发的少不了前台Ajax的使用, 返回true:f ...
- h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...
- JS 做时钟
今天,给大家分享一个用JS做的时钟. <!DOCTYPE html><html> <head> <meta charset="utf-8" ...
- Django model字段类型清单
转载:<Django model字段类型清单> Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField ...
- js调用.net后台事件、后台调用前台以及js调用服务器控件
1. javaScript函数中执行C#代码中的函数: 方法一:间接触发后台代码 1.首先建立一个服务端控件按钮命名为btn1,双击进入后台将调用或处理的内容写入btn1_click中; 2.在前台写 ...
- AJAX部分---对比js做日期的下拉选择 和 ajax做三级联动;
js做日期选择: 实现当前年份的前5后5年的日期选择 实现功能:年份和月份页面加载完成使用JS循环添加,天数根据月份的变化动态添加改变 扩展功能:天数可以根据闰年平年变化 <body> & ...
- socket.io+angular.js+express.js做个聊天应用(三)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/www19940501a/article/details/27590611 接着前面博客文章socke ...
- 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>
前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>
随机推荐
- jQuery控制TR的显示隐藏
网上有很多,这里介绍三种: 第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下: <table> <tr><td ...
- 封装document.ready方法
function $(fn){ if(document.addEventListener){ //W3C document.addEventListener('DOMContentLoaded',fu ...
- 服务器下自动备份MySQL
Linux下 service crond restart */ * * * * /home/mysqlbackup.sh >/home/runssh.log backup.sh #bin/bas ...
- Google搜索镜像
From:http://www.cnblogs.com/killerlegend/p/3783744.html Date:2014.6.12 By KillerLegend Google 搜索:htt ...
- java-testng-selenium优化
由于项目中webui测试的需要,是用testng+selenium的方式,其中遇到过几个问题,记录下,方便以后查看 1.重复运行多次case 因为是selenium,所以有的时候需要运行多次,方法是写 ...
- C# 将DataTable装换位List<T> 泛型
public List<T> GetList<T>(DataTable dt) where T:new() { List<T> DateLists = new Li ...
- 配置php5.6的运行环境
所需要的原材料:(提供链接) php-5.6.10-Win32-VC11-x86 (zip)(注意php版本分为了IIS版和Apache版) httpd-2.4.12-x86-r2(apache) ( ...
- 6.24AppCan移动开发者大会价值30万的展示机会归了谁?
最近,小编的邮箱都被挤爆了! 来自开发者的邮件一封封涌进邮箱,VIP展位申请,TOP30 APP评选,感谢大家的积极参与,展位有限,APP名额有限,开发者的热情无限. 经过谨慎筛选.综合评定后,以下5 ...
- android开发系列之socket编程
上周在项目遇到一个接口需求就是通讯系列必须是socket,所以在这篇博客里面我想谈谈自己在socket编程的时候遇到的一些问题. 其实在android里面实现一个socket通讯是非常简单的,我们只需 ...
- UITabelView 高级(自定义Cell)
自定义一个Cell 当我们要显示复杂数据的时候,例如要做一个扣扣聊天界面,或是新闻列表,系统的行已经不能满足我们的要求,这个时候我们可以通过自定义这个行,让他显示更多复杂结构的样式. 自定义cell就 ...