mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Finished js validation for string validator.
This commit is contained in:
		@ -114,5 +114,26 @@ yii.validation = (function ($) {
 | 
				
			|||||||
				messages.push(options.message);
 | 
									messages.push(options.message);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							string: function (value, messages, options) {
 | 
				
			||||||
 | 
								if (options.skipOnEmpty && isEmpty(value)) {
 | 
				
			||||||
 | 
									return;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (typeof value !== 'string') {
 | 
				
			||||||
 | 
									messages.push(options.message);
 | 
				
			||||||
 | 
									return;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (options.min !== undefined && value.length < options.min) {
 | 
				
			||||||
 | 
									messages.push(options.tooShort);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if (options.max !== undefined && value.length > options.max) {
 | 
				
			||||||
 | 
									messages.push(options.tooLong);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if (options.is !== undefined && value.length != options.is) {
 | 
				
			||||||
 | 
									messages.push(options.is);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
})(jQuery);
 | 
					})(jQuery);
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@
 | 
				
			|||||||
namespace yii\validators;
 | 
					namespace yii\validators;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Yii;
 | 
					use Yii;
 | 
				
			||||||
 | 
					use yii\helpers\Html;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * StringValidator validates that the attribute value is of certain length.
 | 
					 * StringValidator validates that the attribute value is of certain length.
 | 
				
			||||||
@ -132,56 +133,47 @@ class StringValidator extends Validator
 | 
				
			|||||||
		$label = $object->getAttributeLabel($attribute);
 | 
							$label = $object->getAttributeLabel($attribute);
 | 
				
			||||||
		$value = $object->$attribute;
 | 
							$value = $object->$attribute;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$message = strtr($this->message, array(
 | 
				
			||||||
 | 
								'{attribute}' => $label,
 | 
				
			||||||
 | 
								'{value}' => $value,
 | 
				
			||||||
 | 
							));
 | 
				
			||||||
		$notEqual = strtr($this->notEqual, array(
 | 
							$notEqual = strtr($this->notEqual, array(
 | 
				
			||||||
			'{attribute}' => $label,
 | 
								'{attribute}' => $label,
 | 
				
			||||||
			'{value}' => $value,
 | 
								'{value}' => $value,
 | 
				
			||||||
			'{length}' => $this->is,
 | 
								'{length}' => $this->is,
 | 
				
			||||||
		));
 | 
							));
 | 
				
			||||||
 | 
					 | 
				
			||||||
		$tooShort = strtr($this->tooShort, array(
 | 
							$tooShort = strtr($this->tooShort, array(
 | 
				
			||||||
			'{attribute}' => $label,
 | 
								'{attribute}' => $label,
 | 
				
			||||||
			'{value}' => $value,
 | 
								'{value}' => $value,
 | 
				
			||||||
			'{min}' => $this->min,
 | 
								'{min}' => $this->min,
 | 
				
			||||||
		));
 | 
							));
 | 
				
			||||||
 | 
					 | 
				
			||||||
		$tooLong = strtr($this->tooLong, array(
 | 
							$tooLong = strtr($this->tooLong, array(
 | 
				
			||||||
			'{attribute}' => $label,
 | 
								'{attribute}' => $label,
 | 
				
			||||||
			'{value}' => $value,
 | 
								'{value}' => $value,
 | 
				
			||||||
			'{max}' => $this->max,
 | 
								'{max}' => $this->max,
 | 
				
			||||||
		));
 | 
							));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		$js = '';
 | 
							$options = array(
 | 
				
			||||||
 | 
								'message' => Html::encode($message),
 | 
				
			||||||
 | 
								'notEqual' => Html::encode($notEqual),
 | 
				
			||||||
 | 
								'tooShort' => Html::encode($tooShort),
 | 
				
			||||||
 | 
								'tooLong' => Html::encode($tooLong),
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if ($this->min !== null) {
 | 
							if ($this->min !== null) {
 | 
				
			||||||
			$js .= "
 | 
								$options['min'] = $this->min;
 | 
				
			||||||
if(value.length< {$this->min}) {
 | 
					 | 
				
			||||||
	messages.push(" . json_encode($tooShort) . ");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
";
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if ($this->max !== null) {
 | 
							if ($this->max !== null) {
 | 
				
			||||||
			$js .= "
 | 
								$options['max'] = $this->max;
 | 
				
			||||||
if(value.length> {$this->max}) {
 | 
					 | 
				
			||||||
	messages.push(" . json_encode($tooLong) . ");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
";
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if ($this->is !== null) {
 | 
							if ($this->is !== null) {
 | 
				
			||||||
			$js .= "
 | 
								$options['is'] = $this->is;
 | 
				
			||||||
if(value.length!= {$this->is}) {
 | 
					 | 
				
			||||||
	messages.push(" . json_encode($notEqual) . ");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
";
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					 | 
				
			||||||
		if ($this->skipOnEmpty) {
 | 
							if ($this->skipOnEmpty) {
 | 
				
			||||||
			$js = "
 | 
								$options['skipOnEmpty'] = 1;
 | 
				
			||||||
if($.trim(value)!='') {
 | 
					 | 
				
			||||||
	$js
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
";
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return $js;
 | 
							return 'yii.validation.string(value, messages, ' . json_encode($options) . ');';
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user