赞
踩
目录
- // 为发送按钮绑定点击事件处理函数
- $('#btnSend').on('click', function () {
- var text = $('#ipt').val().trim() // 获取用户输入的内容
- if (text.length <= 0) { // 判断用户输入的内容是否为空
- return $('#ipt').val('')
- }
- // 将用户输入的内容显示到聊天窗口中
- $('#talk_list').append('<li class="right_word"><img src="img/person02.png" /> <span>' + text + '</span></li>')
- resetui() // 重置滚动条的位置
- $(‘#ipt’).val('') // 清空输入框的内容
-
- // TODO: 发起请求,获取聊天消息
- })
- function getMsg(text) {
- $.ajax({
- method: 'GET',
- url: 'http://ajax.frontend.itheima.net:3006/api/robot',
- data: {
- spoken: text
- },
- success: function (res) {
- if (res.message === 'success') {
- var msg = res.data.info.text
- $('#talk_list').append('<li class="left_word"><img src="img/person01.png" /> <span>' + msg + '</span></li>')
- resetui()
- // TODO: 发起请求,将机器人的聊天消息转为语音格式
- }
- }
- })
- }

- function getVoice(text) {
- $.ajax({
- method: 'GET',
- url: 'http://ajax.frontend.itheima.net:3006/api/synthesize',
- data: {
- text: text
- },
- success: function (res) {
- // 如果请求成功,则 res.voiceUrl 是服务器返回的音频 URL 地址
- if (res.status === 200) {
- $('#voice').attr('src', res.voiceUrl)
- }
- }
- })
- }
- <!-- 音频播放语音内容 -->
- <audio src="" id="voice" autoplay style="display: none;"></audio>
- <body>
- <div class="wrap">
- <!-- 头部 Header 区域 -->
- <div class="header">
- <h3>小思同学</h3>
- <img src="img/person01.png" alt="icon" />
- </div>
- <!-- 中间 聊天内容区域 -->
- <div class="main">
- <ul class="talk_list" style="top: 0px;" id="talk_list">
- <li class="left_word">
- <img src="img/person01.png" /> <span>嗨,最近想我没有?</span>
- </li>
- <!-- <li class="right_word">
- <img src="img/person02.png" /> <span>你好哦</span>
- </li> -->
- </ul>
- <div class="drag_bar" style="display: none;">
- <div class="drager ui-draggable ui-draggable-handle" style="display: none; height: 412.628px;"></div>
- </div>
- </div>
- <!-- 底部 消息编辑区域 -->
- <div class="footer">
- <img src="img/person02.png" alt="icon" />
- <input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" />
- <input type="button" value="发 送" class="input_sub" id="btnSend" />
- </div>
- </div>
- <!-- 注意:只要为 audio 指定了新的 src 属性,而且指定了 autoplay,那么,语音就会自动播放 -->
- <audio src="" id="voice" autoplay style="display: none;"></audio>
- <script type="text/javascript" src="js/scroll.js"></script>
- <script src="./js/chat.js"></script>
- </body>

表单在网页中主要负责数据采集功能。HTML中的<form>标签,就是用于采集用户输入的信息,并通过<form>标签的提交操作,把采集到的信息提交到服务器端进行处理。
- <form>
- <input type="text" name="email_or_mobile" />
- <input type="password" name="password" />
- <input type="checkbox" name="remember_me" checked />
- <button type="submit">提交</button>
- </form>
表单由三个基本部分组成:
- <form>
- <input type="text" name="email_or_mobile" />
- <input type="password" name="password" />
- <input type="checkbox" name="remember_me" checked />
- <button type="submit">提交</button>
- </form>
<form>标签用来采集数据,<form>标签的属性则是用来规定如何把采集到的数据发送到服务器。
属性 | 值 | 描述 |
action | URL地址 | 规定当提交表单时,向何处发送表单数据 |
method | get或post | 规定以何种方式把表单数据提交到 action URL |
application/x-www-form-urlencoded multipart/form-data text/plain | 规定在发送表单数据之前如何对其进行编码 | |
target | _blank _self _parent _top framename | 规定在何处打开 action URL |
1. action
注意:当提交表单后,页面会立即跳转到 action 属性指定的 URL 地址
2. target
值 | 描述 |
_blank | 在新窗口中打开。 |
_self | 默认。在相同的框架中打开。 |
_parent | 在父框架集中打开。(很少用) |
_top | 在整个窗口中打开。(很少用) |
framename | 在指定的框架中打开。(很少用) |
3. method
注意:
4. enctype
enctype 属性用来规定在发送表单数据之前如何对数据进行编码。 它的可选值有三个,默认情况下,enctype 的值为 application/x-www-form-urlencoded,表示在发送前编码所有的字符。
值 | 描述 |
application/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
multipart/form-data | 不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。 |
text/plain | 空格转换为 “+” 加号,但不对特殊字符编码。(很少用) |
注意:
1. 什么是表单的同步提交
通过点击 submit 按钮,触发表单提交的操作,从而使页面跳转到 action URL 的行为,叫做表单的同步提交。
2. 表单同步提交的缺点
3. 如何解决表单同步提交的缺点
如果使用表单提交数据,则会导致以下两个问题:
解决方案:表单只负责采集数据,Ajax 负责将数据提交到服务器。
在 jQuery 中,可以使用如下两种方式,监听到表单的提交事件:
- $('#form1').submit(function(e) {
- alert('监听到了表单的提交事件')
- })
-
- $('#form1').on('submit', function(e) {
- alert('监听到了表单的提交事件')
- })
当监听到表单的提交事件以后,可以调用事件对象的 event.preventDefault() 函数,来阻止表单的提交和页面的跳转,示例代码如下:
- $('#form1').submit(function(e) {
- // 阻止表单的提交和页面的跳转
- e.preventDefault()
- })
-
- $('#form1').on('submit', function(e) {
- // 阻止表单的提交和页面的跳转
- e.preventDefault()
- })
1. serialize()函数
为了简化表单中数据的获取操作,jQuery 提供了 serialize() 函数,其语法格式如下:
$(selector).serialize ()
serialize()函数的好处:可以一次性获取到表单中的所有的数据。
2. serialize()函数示例
- <form id="form1">
- <input type="text" name="username" />
- <input type="password" name="password" />
- <button type="submit">提交</button>
- </form>
- $('#form1').serialize()
- // 调用的结果:
- // username=用户名的值&password=密码的值
注意:在使用 serialize() 函数快速获取表单数据时,必须为每个表单元素添加 name 属性!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。