mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-01 03:26:36 +08:00 
			
		
		
		
	form wip
This commit is contained in:
		| @ -123,7 +123,7 @@ | ||||
| 		}, | ||||
|  | ||||
| 		submitForm: function () { | ||||
| 			var $form = $(this), | ||||
| 			var $form = this, | ||||
| 				data = $form.data('yiiActiveForm'); | ||||
| 			if (data.validated) { | ||||
| 				// continue submitting the form since validation passes | ||||
| @ -142,7 +142,7 @@ | ||||
| 						hasError = updateInput($form, this, messages) || hasError; | ||||
| 					}); | ||||
| 					updateSummary($form, messages); | ||||
| 					if (!data.settings.afterValidate || data.settings.afterValidate($form, data, hasError)) { | ||||
| 					if (!data.settings.afterValidate || data.settings.afterValidate($form, messages, hasError)) { | ||||
| 						if (!hasError) { | ||||
| 							data.validated = true; | ||||
| 							var $button = data.submitObject || $form.find(':submit:first'); | ||||
| @ -167,7 +167,7 @@ | ||||
| 		}, | ||||
|  | ||||
| 		resetForm: function () { | ||||
| 			var $form = $(this); | ||||
| 			var $form = this; | ||||
| 			var data = $form.data('yiiActiveForm'); | ||||
| 			// Because we bind directly to a form reset event instead of a reset button (that may not exist), | ||||
| 			// when this function is executed form input values have not been reset yet. | ||||
| @ -190,26 +190,6 @@ | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	var getValue = function ($form, attribute) { | ||||
| 		var $input = findInput($form, attribute); | ||||
| 		var type = $input.attr('type'); | ||||
| 		if (type === 'checkbox' || type === 'radio') { | ||||
| 			return $input.filter(':checked').val(); | ||||
| 		} else { | ||||
| 			return $input.val(); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	var findInput = function ($form, attribute) { | ||||
| 		var $input = $form.find(attribute.input); | ||||
| 		if ($input.length && $input[0].tagName.toLowerCase() === 'div') { | ||||
| 			// checkbox list or radio list | ||||
| 			return $input.find('input'); | ||||
| 		} else { | ||||
| 			return $input; | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	var watchAttributes = function ($form, attributes) { | ||||
| 		$.each(attributes, function (i, attribute) { | ||||
| 			var $input = findInput($form, attribute); | ||||
| @ -304,6 +284,9 @@ | ||||
| 		}); | ||||
|  | ||||
| 		if (needAjaxValidation && (!data.submitting || $.isEmptyObject(messages))) { | ||||
| 			// Perform ajax validation when at least one input needs it. | ||||
| 			// If the validation is triggered by form submission, ajax validation | ||||
| 			// should be done only when all inputs pass client validation | ||||
| 			var $button = data.submitObject, | ||||
| 				extData = '&' + data.settings.ajaxVar + '=' + $form.attr('id'); | ||||
| 			if ($button && $button.length && $button.attr('name')) { | ||||
| @ -389,4 +372,24 @@ | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	var getValue = function ($form, attribute) { | ||||
| 		var $input = findInput($form, attribute); | ||||
| 		var type = $input.attr('type'); | ||||
| 		if (type === 'checkbox' || type === 'radio') { | ||||
| 			return $input.filter(':checked').val(); | ||||
| 		} else { | ||||
| 			return $input.val(); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	var findInput = function ($form, attribute) { | ||||
| 		var $input = $form.find(attribute.input); | ||||
| 		if ($input.length && $input[0].tagName.toLowerCase() === 'div') { | ||||
| 			// checkbox list or radio list | ||||
| 			return $input.find('input'); | ||||
| 		} else { | ||||
| 			return $input; | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| })(window.jQuery); | ||||
		Reference in New Issue
	
	Block a user
	 Qiang Xue
					Qiang Xue