Home  >  Article  >  Backend Development  >  新手学php 请问一个文本框验证不为空的有关问题

新手学php 请问一个文本框验证不为空的有关问题

WBOY
WBOYOriginal
2016-06-13 13:37:061186browse

新手学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 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;
}
}
}

------解决方案--------------------
探讨

在页面中

input('User.username',array('class'=>'sinput','onblur'=>'checkUserName(this.value)','maxlength'=>50,'size'=>30));?>
用户名由4-16个字符……

------解决方案--------------------
建议用Codeigniter...有配验证类
http://codeigniter.org.cn/user_guide/libraries/form_validation.html#individualerrors
------解决方案--------------------
当我在文本框输入时候,要是为空的话,就立马提示一个对话框(你所输入的内容不为空)。

你这个状态就已经决定了,你不用js(客户端)的话,php(服务端)是没有办法知道这个状态。
你觉得客户端的事件不通过一定的通信方式传递给服务端,服务端就能知道这个事件的发生?
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn