4 个回答

目的是在field中寻找value属性,如果value属性为null或者""则alert,否则返回true。关于with的用法参考其他答案中的连接。由于with会混淆作用域,所以一般不推荐使用。

其实这里不是用with可以这么写:

function validate_required(field, alerttxt) {
    field || (field = {});
    if(field.value==null || field.value=='') {
        alert(alerttxt);
    } else {
        return true;
    }
} 

小心使用with语句

with语句的作用是延长作用域链,在作用域链上添加一个临时的变量对象,就可以直接使用这个临时变量对象上的属性了,比如你的代码中,就是将field添到了作用域链上

with(field){
   
    if(value==null||value==""){
    //这个value其实是field的属性,却不需要field.value,直接写value就可以使用
    //跟你直接用document.getElementById(),而不需要window.document.getElementById()是一个道理
    //document就是window对象的属性,而window对象在作用域链的最顶端
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题