O有一个表单,字段由jQuery预先填充。当用户点击该字段时,该字段会清空自己,并键入其信息。但是,如果他们不在每个字段中输入信息,则提交默认值。我想使用Codeigniter的内置验证来禁止用户创建名为“First Name”的帐户。
见:otis.team2648.com/auth/register
谢谢, 布雷克
答案 0 :(得分:1)
您可以使用回调函数:
//你的规则
$this->form_validation->set_rules('first_name', 'required|callback__no_first_name');
//回调
function _no_first_name($str) {
if ($str !== 'First Name') {
return TRUE;
}
else
{
$this->form_validation->set_message('_no_first_name', 'You should not have "First Name as the first name"');
return FALSE;
}
}
答案 1 :(得分:1)
我会扩展Form_validation库并将其转换为更有价值的表单验证规则,您可以轻松地重复使用...
示例 - (更改您的CI版本的相关信息)
class MY_Form_validation extends CI_Form_validation {
function __construct() {
parent::CI_Form_validation();
}
function disallow_string($str,$word)
{
return ( strpos($str,$word) === FALSE ) ? TRUE : TRUE;
}
}
将以上代码放在MY_Form_Validation.php
application/libraries
中
在您的验证中,只需使用像这样的规则
$this->form_validation->set_rules('first_name', 'required|disallow_string[First Name]');
请注意,您可以对所有字段使用相同的规则,就像我可以设想的其他用途一样。
答案 2 :(得分:0)
不要在字段中将默认文本写为值!使用这种结构:
<input type="text" name="uname" id="uname" placeholder="Your name" />
如果用户将焦点设置在此字段上,则文本消失。但如果用户什么都不插入,则不会提交任何值。