博主信息
博文 13
粉丝 1
评论 0
访问量 11489
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
表单常用事件,AJAX异步请求之get请求、post请求-2019/7/16
降落伞的博客
原创
969人浏览过

1、表单常用事件是指如何触发 或者 在什么情况下触发

  • focus,当控件获取焦点时触发;blur,当控件失去焦点时触发;change,当控件的值发生变化且失去焦点时触发;input,每一次值发生变化都会触发;submit,表单提交时触发(现在很少用)。

  • 格式:获取到的控件对象.addEventListener('常用事件', function (ev) {
       ev.target. ……  ;  
    }, false);

    ev是指这个常用事件。

    ev.target是指哪个控件会发生这个事件,这个事件是针对哪个控件而言的。

2、选择表单元素

  • 通过form的name值获取到整个表单var login = document.forms.namedItem('login');

  • 获取表单中的每一个控件可以 基于表单对象获取,比如var email = login.email。但在获取Select里的option元素时,可以先获取到Select元素var remember = login.Select ID,在基于这个和option的name获取,Select ID.namedItem('option ID') ;获取按钮上的文本,先获取按钮元素,然后btn.innerText。

3、AJAX异步请求是区别于通过浏览器URL同步请求的一种方式,不管是GET请求还是POST请求,创建AJAX请求都要遵循4个步骤。

  • 1、创建请求对象var request = new XMLHttpRequest()

  • 2、监听成功的回调。比如当用户输入内容符合要求时,我们要通过AJAX将数据发送服务器,这是会有一个switch判断,在default中(意味着输入符合要求),有一个监听成功回调request.addEventListener('readystatechange', 函数名, false);

    其中,'readystatechange'是一个触发事件,意思是当文档的readyState属性发生改变时会触发。readyState一共有4个值,0: 请求未初始化,1: 服务器连接已建立,2: 请求已接收,3: 请求处理中,4: 请求已完成,且响应已就绪。

    其中,函数内部会有一个判断,当readyState === 4时会执行一个什么操作,

  • 3、设置请求参数。request.open('GET/POST', 'XXXXX.php', true);

    open()方法中,第一个参数是HTTP请求方式,比如GET,POST;第二个参数是URL,指服务器上的文件的路径,该文件可以使任何类型的文件,比如txt、xml、php ;第三个参数为true或false,true表示异步执行,false表示同步执行(不推荐)。

  • 4、发送异步请求。

    1)如果是GET请求,需要先对控件中输入的值进行编码

          var data = encodeURIComponent(input.value),这一步在第三步之前,这个input是用户ID输入框

          此时第三步就会变成request.open('GET', 'XXXX.php?user_id='+data, true);

          第四步,发送请求,request.send(null);

         ( encodeURIComponent():对值中的非法字符进行编码,如空格等,解码:decodeURIComponent())

    2)如果是POST请求

         需要先以表单键值对方式封装需要发送的数据(要在发送请求之前)
                 var data = 'username='+username+'&email='+email+'&password='+password+'&remember='+remember;
         然后设置请求头以表单数据格式发送数据(要在发送请求之前)
                request.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=utf-8');
         第四步,发送请求,request.send(data);

批改状态:合格

老师批语:总结的不错, 就是还没有写完, 下次写完一并提交
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学