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的提交