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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func( this  *YourController)Get() {
         this .TplNames =  "yourPage.html"
     cates := []*category{
         &category{ "-1" true "请选择" },
         &category{ "golang" false "golang" },
         &category{ "Java" false "Java" },
         &category{ "C/C++" false "C/C++" },
     }
                                                                                                                                                                                                                                                                                                                                                                                                                                                               
     this .Data[ "Cates" ] = cates
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                              
type category struct {
     Id         string
     IsSelected bool
     Value      string
}


   对应的HTML模板中:

1
2
3
4
5
6
< select  class = "form-control input-sm"  name = "category"  id = "category"  style = "width: 120px;" >
     `range `.`Cates`
     < option  value=``.`Id` `if `.`IsSelected`  select = "selected" `end`>``.`Value`</ option >
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
     `end`
</ select >

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

wKiom1L42gvhIkOTAACGMPlNuOM236.jpg


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

wKiom1L429zwn2LyAAKL5RMPCn8587.jpg

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

1
2
3
4
5
6
7
8
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,点击“提交”,后台输出:

wKioL1L43iLTJuOOAACtbjMrad4237.jpg


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

1
2
3
4
5
6
7
8
function  check() {
     if  ( '-1'  == $( '#category' ).val()) { //select的value值为-1
         alert( "请选择文章创作类型" );
         $( '#category' ).focus();
         return  false ;
     }
     return  true ;
}










本文转自 ponpon_ 51CTO博客,原文链接:http://blog.51cto.com/liuxp0827/1357863,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
移动开发 前端开发 JavaScript
HTML 框架高阶用法
HTML框架,或前端框架,如Bootstrap、Vue.js等,显著提升了Web应用开发的速度与用户体验。本文介绍了一些高级技巧,如自定义样式与组件、响应式设计实践、JavaScript功能增强及性能优化策略等,帮助开发者更好地利用这些工具,实现高效开发并提升应用性能与灵活性。
HTML 框架2
iframe标签用于在当前页面中嵌入另一个HTML页面。通过设置frameborder属性为&quot;0&quot;,可以移除iframe边框。iframe的src属性用于指定要嵌入的页面URL。例如,使用`&lt;iframe src=&quot;https://www.runoob.com&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;`可以无边框地显示RUNOOB.COM页面。
HTML 框架1
HTML框架允许在同一个浏览器窗口中同时显示多个页面。`&lt;iframe&gt;`标签用于嵌入其他网页,基本语法为 `&lt;iframe src=&quot;URL&quot;&gt;&lt;/iframe&gt;`。可以通过设置 `height` 和 `width` 属性来调整 iframe 的大小,例如:`&lt;iframe src=&quot;demo_iframe.htm&quot; width=&quot;200&quot; height=&quot;200&quot;&gt;&lt;/iframe&gt;`。属性值可以是像素或百分比。
|
4月前
|
数据可视化 前端开发
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
本文介绍了如何在Twaver-HTML5中使用鹰眼(Overview)可视化视图组件,它作为Network的缩略图,允许用户通过缩略图导航Network,支持单击、双击和框选操作来控制Network视图。
55 5
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
|
4月前
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
53 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
HTML 框架3
iframe 是一种在网页中嵌入另一个 HTML 页面的技术。通过设置 iframe 的属性,可以显示指定的目标链接页面。例如,可以使用 iframe 嵌入 RUNOOB.COM 网站。HTML 中的 `&lt;iframe&gt;` 标签用于定义内联框架。
|
4月前
|
数据可视化 前端开发
Twaver-HTML5基础学习(25)网元可视化视图组件(Network)
这篇文章介绍了Twaver-HTML5中的网元可视化视图组件(Network)的层次结构,包括view、rootCanvas和topCanvas的使用方法和示例。
50 6
|
4月前
|
移动开发 数据可视化 HTML5
Twaver-HTML5基础学习(40)表格可视化视图组件(Table)
本文介绍了如何在Twaver-HTML5中使用表格可视化视图组件(Table),包括创建表格、定义列对象、实现数据绑定和排序,以及处理表格事件和获取表格数据的方法。
55 1
|
5月前
|
前端开发
HTML+CSS基础知识(6)背景的设置、表格的设计、表单的设计和框架集
这篇文章详细介绍了如何在HTML和CSS中设置背景、设计表格、创建表单以及使用框架集,并通过代码示例和测试结果展示了具体的实现方法和效果。
HTML+CSS基础知识(6)背景的设置、表格的设计、表单的设计和框架集
|
5月前
|
XML JavaScript 测试技术
Web自动化测试框架(基础篇)--HTML页面元素和DOM对象
本文为Web自动化测试入门指南,介绍了HTML页面元素和DOM对象的基础知识,以及如何使用Python中的Selenium WebDriver进行元素定位、操作和等待机制,旨在帮助初学者理解Web自动化测试中的关键概念和操作技巧。
65 1