新手学php 请教一个文本框验证不为空的问题?
我在model层:     
class City extends AppModel {
     var $name = 'cities';
	var $validate = array(
		'city_name' => array(
			'notempty' => array(
				'rule' => 'notEmpty',
				'message' => '城市名不能为空!',
				'last' => true,
				'required' => true,
				'allowEmpty' => false
			)
		),
		'city_name_eng' => array(
			'notempty' => array(
				'rule' =>'notEmpty',
				'message' => '英文名不能为空!',
				'last' => true,
				'required' => true
			)
		),
		'city_code' => array(
			'notempty' => array(
				'rule' => 'notEmpty',
				'message' => '城市编码不能为空!',
				'last' => true,
				'required' => true
			)
		)	
	);
}
?>
它可以判断文本框不为空,但是不提示消息出来!
    我要求的结果是:利用mvc(php框架内置的消息机制)形式,当我在文本框输入时候,要是为空的话,就立马提示一个对话框(你所输入的内容不为空)。
   请大家 教我一个详细的流程,最好附加代码, 就举个例子, 一个字段的操作就ok。 谢谢
------解决方案--------------------看你的model应该是cakephp写的吧?
你这种写法,是没法满足你的要求的.这是cakephp自带的验证方式.通过这种方式,之后提交后才会进行验证的.但是这种方式的好处就是,如果你在页面中,若果以"Model.field"方式定义标签,错误会自动输出在input框下面的.
按你的要求,你可以使用jquery,进行校验.可以定义光标失去焦点事件,就及时提示错误消息.你可以找个网站会员注册的,看看别人的写法.基本上都有这种写法.
------解决方案--------------------
在页面中
 input('User.username',array('class'=>'sinput','onblur'=>'checkUserName(this.value)','maxlength'=>50,'size'=>30));?> 用户名由4-16个字符(包括中文、字母、数字             | js可以写
function checkUserName(){
   var username = $('#MemberUsername').val();
   var target = $("#checkusername");
   if (username.length <= 3) {
        target.addClass('error_msg');
        target.html("用户名少于3个字符");
        return false;
   }else{
       var rule=/^[A-Za-z0-9\u4E00-\u9FA5]+$/;
       if (!rule.test(username)){
           target.addClass('error_msg');
           target.html("用户名由字母、数字、中文组成");
           return false;
       } else{
           //检查用户名是否注册
           $.post('/members/checkUsername',{username:username},function(data){
               if( data=="true" ){
                   target.addClass('error_msg');
                   target.html("用户名已存在");
                   return false;
               } else{
                   target.removeClass('error_msg');
                   target.html("
 ");
               }
           })
           return true;
       }
   }
}
------解决方案--------------------