beego 显示html文件,golang Beego框架之HTML表单中的select标签组件的处理

用Beego来进行web开发,对每个页面都可创建一个YourController类型,并匿名包含beego.Controller来达到继承beego.Controller的效果。以YourController为receiver重写beego.Controller的Get,Post等方法。当网页请求为Get/Post,则执行该页面YourController的Get()/Post()方法。

在对应页面的Controller的Get()方法中,往数据Data写入category的实例切片cates:

func(this *YourController)Get() {

this.TplNames = "yourPage.html"

cates := []*category{

&category{"-1",true,"请选择"},&category{"golang",false,"golang"},&category{"Java","Java"},&category{"C/C++","C/C++"},}

this.Data["Cates"] = cates

}

type category struct {

Id string

IsSelected bool

Value string

}

对应的HTML模板中:

{{range .Cates}}

{{.Value}}

{{end}}

HTML中用{{range .Cates}}来遍历golang传来的Data(此处.Cates传来的是Get方法中的Data["Cates"]),而{{.Id}},{{.IsSelected}},{{.Valuse}}分别为golang中的类型category的三个字段。当Method为Get,页面渲染如下截图:

loading.png

在上图中,点击“提交”按钮,客户端向服务器发送Post请求,让我们看下该页面的Post表单:

loading.png

我们看到,form表单中,select组件设置id,name为“category”,当用户点击了“提交”,向服务器发送Post请求提交该表单,Beego中该页面Controller的Post()方法可通过this.input().Get("category")来过得select中category的value值,这些值就是被选中option的value值:

func (this *YourController) Post() {

this.TplNames = "yourPage.html"

this.Ctx.Request.ParseForm()

category := this.Input().Get("category")

fmt.Println("caterogy value:",category)

this.Redirect("/category",301)

return

}

选择golang,点击“提交”,后台输出:

loading.png

注意,select默认值是最上面的请选择,故再击提交按钮时要通过html页面内javascript函数 check();"来判断select是否做出正确选择,check()为一个hmtl嵌套的js脚本函数:

function check() {

if ('-1' == $('#category').val()) {//select的value值为-1

alert("请选择文章创作类型");

$('#category').focus();

return false;

}

return true;

}

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值