<html> <head> <script type="text/javascript"> function validate_email(field,alerttxt) { with (field) { apos=value.indexOf("@") dotpos=value.lastIndexOf(".") if (apos<1||dotpos-apos<2) {alert(alerttxt);return false} else {return true} } } function validate_form(thisform) { with (thisform) { if (validate_email(email,"Not a valid e-mail address!")==false) {email.focus();return false} } } </script> </head> <body> <form action="submitpage.htm"onsubmit="return validate_form(this);" method="post"> Email: <input type="text" name="email" size="30"> <input type="submit" value="Submit"> </form> </body> </html>
这个是一个网站教程的例子,里面在with ( )中嵌套了if,这个with()是什么方法?这个with()就是和if 一起用的吗?
学习ing2016-11-09 16:42:41
with()和if()没有关系。
with(obj)作用就是将后面的{}中的语句块中的缺省对象设置为obj,那么在其后面的{}语句块中引用obj的方法或属性时可以省略obj.的输入而直接使用方法或属性的名称。比如:
不用with()时:
function validate_email(field,alerttxt){ field.apos=value.indexOf("@") field.dotpos=value.lastIndexOf(".") if (field.apos<1 || field.dotpos-field.apos<2) { alert(alerttxt); return false }else { return true } }
用了with(field)后,上面函数中的field.都可以省略了,减少了输入的工作量。