热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javascript-①$("#userName")[0]中的这个【0】表示什么意思呀?

{代码...}①$("#userName")[0]中的这个【0】表示什么意思呀?②函数最后加了一个returnfalse;它的作用是什么呢?能否省略?请大神赐教!
function check_form(){
    usernameObj = $("#userName")[0];
        //window.alert(usernameObj.value); //show usernameObj=[object HTMLInputElement]
    var language = $("#choose_language").val();
    if(usernameObj.value==''){
        showWarningMsg("");
        return false;
    }
    pwdObj = $("#password")[0];
    if(pwdObj.value==''){
        showWarningMsg("");
        return false;
    }
    var yanzheng = $("#user_varify").val();
    if(yanzheng==""&&yanzheng.length!=4){
        showWarningMsg("");
        return false;
    }
    requestUrl = formatAjaxUrl("std-index.php");
    $.post(requestUrl, {"language":language,"action":"login_in","username":usernameObj.value, 
                        "password": hex_md5(pwdObj.value)+"", 
                        "choose": document.getElementById("checkednames").value, 
                        "remember": "0","yanzheng":yanzheng},
             function(data, textStatus)  
            {  
        if (textStatus=="success") {
            errorCode = getErrorCode(data);
            switch (errorCode) {
                  case 0:
                      window.location = "";
                      break;
                  case 1: 
                  case 2:
                      showWarningMsg("");
                      break;
                  case 3:
                      showWarningMsg("");
                      break;
                  case 4:
                      userHasLogin("");
                      break;
                case 5:
                      showWarningMsg("");
                      refresh_img();
                      break;
                  case 6:
                      showWarningMsg("");
                      refresh_img();
                      break;
                  case 9: 
                      break;    
                  case 10: // admin & license doesn't exist
                      window.location = "i2/wizard/wiz_license.php";
                      break;
                  case 11: // admin & notice something
                      window.location = "i2/wizard/wiz_notice.php";
                      break;
                  case 12: // non-admin user & license doesn't exist
                      showWarningMsg("");
                      break;
                  case 13: // non-admin & trial license expired
                      showWarningMsg("");
                      break;
                  case 20: // upgrade database fail
                      errorMsg = getErrorMsg(data);
                      showWarningMsg("" + errorMsg);
                      break;
                  case 99: 
                      errorMsg = getErrorMsg(data);
                      showWarningMsg( errorMsg );
                      break;
              }
        }
    }); 
    return false;
}

①$("#userName")[0]中的这个【0】表示什么意思呀?
②函数最后加了一个return false;它的作用是什么呢?能否省略?
请大神赐教!

回复内容:

function check_form(){
    usernameObj = $("#userName")[0];
        //window.alert(usernameObj.value); //show usernameObj=[object HTMLInputElement]
    var language = $("#choose_language").val();
    if(usernameObj.value==''){
        showWarningMsg("");
        return false;
    }
    pwdObj = $("#password")[0];
    if(pwdObj.value==''){
        showWarningMsg("");
        return false;
    }
    var yanzheng = $("#user_varify").val();
    if(yanzheng==""&&yanzheng.length!=4){
        showWarningMsg("");
        return false;
    }
    requestUrl = formatAjaxUrl("std-index.php");
    $.post(requestUrl, {"language":language,"action":"login_in","username":usernameObj.value, 
                        "password": hex_md5(pwdObj.value)+"", 
                        "choose": document.getElementById("checkednames").value, 
                        "remember": "0","yanzheng":yanzheng},
             function(data, textStatus)  
            {  
        if (textStatus=="success") {
            errorCode = getErrorCode(data);
            switch (errorCode) {
                  case 0:
                      window.location = "";
                      break;
                  case 1: 
                  case 2:
                      showWarningMsg("");
                      break;
                  case 3:
                      showWarningMsg("");
                      break;
                  case 4:
                      userHasLogin("");
                      break;
                case 5:
                      showWarningMsg("");
                      refresh_img();
                      break;
                  case 6:
                      showWarningMsg("");
                      refresh_img();
                      break;
                  case 9: 
                      break;    
                  case 10: // admin & license doesn't exist
                      window.location = "i2/wizard/wiz_license.php";
                      break;
                  case 11: // admin & notice something
                      window.location = "i2/wizard/wiz_notice.php";
                      break;
                  case 12: // non-admin user & license doesn't exist
                      showWarningMsg("");
                      break;
                  case 13: // non-admin & trial license expired
                      showWarningMsg("");
                      break;
                  case 20: // upgrade database fail
                      errorMsg = getErrorMsg(data);
                      showWarningMsg("" + errorMsg);
                      break;
                  case 99: 
                      errorMsg = getErrorMsg(data);
                      showWarningMsg( errorMsg );
                      break;
              }
        }
    }); 
    return false;
}

①$("#userName")[0]中的这个【0】表示什么意思呀?
②函数最后加了一个return false;它的作用是什么呢?能否省略?
请大神赐教!

我能很喜感的说,菜鸟看菜鸟写的代码吗?
两句都是废话。
$('#userName')表示根据id查找对象,但是html规范中id是唯一的,所以这里的[0]虽然是得到了js原生对象,但是实际上一点用都没有,参考后面的
var yanzheng = $("#user_varify").val();
同样的

usernameObj = $("#userName")[0];
if(usernameObj.value==''){
    showWarningMsg("");
    return false;
}

可以等效为

usernameObj = $("#userName")[0];
if(! $("#userName").val().length){
    showWarningMsg("");
    return false;
}

结尾的return false用来阻止事件冒泡,但是源码中的Onclick="check_form(); return false;"既然又写了一个return false,那么函数里面那个写不写都没用,反正没挂return。
正确的方式是

因为访问者按回车也会触发表单提交,这样不需要点击submit按钮从而绕过了检测。
再说这个方法最好命名为ajaxSubmit之类的名字,而不是checkform,因为里面包含了提交处理。

这段代码的整体逻辑是
当点击提交按钮的时候对form数据进行检查,如果检查成功使用ajax提交数据。return false是用来阻止form产生普通的表单提交。

明白意思就好了,代码本身没什么值得学习的。

1.选择这个是返回jquery对象。
2.是取消动作用的。

建议你重新看下犀牛书,毫无基础的样子。

把jq对象,转换成,原生js对象。此时你不能用jq的方法,只能用js的所支持的dom方法操作。你还可以使用$("#userName").get(0)获取原生js对象,但是建议用数组下标的方法,这种方法更快捷。

$(selector)返回的是jQuery对象,$(selector)[0]是返回原生的DOM对象,即document.getElementById()返回的那种对象。(不明白这里代码为什么一会用jQuery的方式一会用原生DOM...)
②这个函数是submit form用的吗,如果是的话,return false;的作用是取消form的提交

推荐阅读
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
author-avatar
手机用户2502908327
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有