文本字段增加字数统计控制

2022-09-27 11:26 0

image

在文本字段后方加一个字数控制。


开发思路:

重写Text字段类别


实现步骤:

1、新建文件

dayrui/My/Field/Text.php

2、代码修改


			'.dr_lang('输入字数限制').'
			
				
				'.dr_lang('要求最大输入的字数,超过会禁止提交').'
			
'.dr_lang('控件宽度').' '.dr_lang('[整数]表示固定宽度;[整数%]表示百分比').'
'.dr_lang('密码框模式').' '.dr_lang('开启之后它将作为密码框来显示').' '.dr_lang('验证重复').' '.dr_lang('开启将会判断此字段的唯一性(本字段只对内容模块主表有效)').' '; $option = $this->field_type($option['fieldtype'], $option['fieldlength']).' '.dr_lang('默认填充值').' '.dr_lang('也可以设置会员表字段,表示用当前登录会员信息来填充这个值').' '; return [$option, $style]; }               /**      * 字段入库值      *      * @param array $field 字段信息      * @return  void      */     public function insert_value($field) {                  if ($field['setting']['option']['zishu']) {             // 验证字数     $value = \Phpcmf\Service::L('Field')->post[$field['fieldname']];     if (mb_strlen($value) > $field['setting']['option']['zishu']) {         \Phpcmf\Service::C()->_json(0, '字数超限了', ['field' => $field['fieldname']]);     }         }          parent::insert_value($field);     } /**  * 字段表单输入  *  * @param string $field 字段数组  * @param array $value 值  * @return  string  */ public function input($field, $value = null) { // 字段禁止修改时就返回显示字符串 if ($this->_not_edit($field, $value)) { return $this->show($field, $value); } // 字段存储名称 $name = $field['fieldname']; // 字段显示名称 $text = ($field['setting']['validate']['required'] ? ' * ' : '').$field['name']; // 表单宽度设置 $width = \Phpcmf\Service::_is_mobile() ? '100%' : ($field['setting']['option']['width'] ? $field['setting']['option']['width'] : 200); // 风格 $style = 'style="width:'.$width.(is_numeric($width) ? 'px' : '').';"'; // 表单附加参数 $attr = $field['setting']['validate']['formattr']; // 字段提示信息 $tips = ($name == 'title' && APP_DIR) || $field['setting']['validate']['tips'] ? ''.$field['setting']['validate']['tips'].'' : ''; // 当字段必填时,加入html5验证标签 $required =  $field['setting']['validate']['required'] ? ' required="required"' : ''; // 是否密码框 $type = $field['setting']['option']['ispwd'] ? 'password' : 'text'; // 字段默认值 $value = strlen($value) ? $value : $this->get_default_value($field['setting']['option']['value']); $str = ''; if ($field['setting']['option']['zishu']) {                     // 验证字数     $str = ''.mb_strlen($value).'/'.$field['setting']['option']['zishu'].'';     $str.= '';         } return $this->input_format($field['fieldname'], $text, $str.$tips); } }


3、自定义字段,设置长度

image



咨询
微信
电话