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,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
移动开发 HTML5
HTML5标签的类型
HTML5标签的类型。
57 5
|
21天前
|
定位技术
时尚的联系我们表单HTML模板(源码)
一款时尚的联系我们表单Html模板,带地图和所在位置,输入基本信息和信息发送,看起来很漂亮的联系我们页面。
33 1
时尚的联系我们表单HTML模板(源码)
|
18天前
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页面。
|
18天前
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;`。属性值可以是像素或百分比。
|
18天前
|
移动开发 UED HTML5
HTML 表单和输入7
HTML 表单标签包括 `&lt;form&gt;`、`&lt;input&gt;`、`&lt;textarea&gt;`、`&lt;label&gt;`、`&lt;fieldset&gt;`、`&lt;legend&gt;`、`&lt;select&gt;`、`&lt;optgroup&gt;`、`&lt;option&gt;` 和 `&lt;button&gt;` 等,用于创建用户输入界面。HTML5 新增了 `&lt;datalist&gt;`、`&lt;keygen&gt;` 和 `&lt;output&gt;` 标签,增强了表单的功能和用户体验。
|
18天前
HTML 表单和输入6
提交按钮 `&lt;input type=&quot;submit&quot;&gt;` 用于将表单数据发送到服务器。表单的 `action` 属性指定接收数据的服务器文件,而 `method` 属性定义了提交方式(`get` 或 `post`)。`get` 方法将数据附加在 URL 后,适用于非敏感信息;`post` 方法将数据包含在请求体中,适用于敏感数据。示例展示了如何使用这两种方法提交表单。
|
14天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
26 3
|
20天前
HTML 表单和输入5
复选框(Checkboxes)由 `&lt;input type=&quot;checkbox&quot;&gt;` 定义,允许用户选择一个或多个选项。
|
20天前
HTML 表单和输入2
HTML 表单是用于收集用户输入的区域,包含各种表单元素如文本域、下拉列表、单选框和复选框等。使用 `&lt;form&gt;` 标签创建表单,其中包含多个 `&lt;input&gt;` 元素来定义不同的输入类型。
|
20天前
HTML 表单和输入3
HTML 表单中的 `&lt;input&gt;` 标签是最常用的表单元素,其类型由 `type` 属性定义。常见的输入类型包括文本域(`&lt;input type=&quot;text&quot;&gt;`),用于用户在表单中输入字母和数字。