[56907,57595]
The relevant part of the data that comes back from the async postback looks like this:
|ScriptContentWithTags|{"text":"\r\n\u003c!--\r\nvar Page_ValidationActive
= false;\r\nif (typeof(ValidatorOnLoad) == \"function\") {\r\n ValidatorOnLoad();\r\n}\r\n\r\nfunction
ValidatorOnSubmit() {\r\n if (Page_ValidationActive) {\r\n return ValidatorCommonOnSubmit
();\r\n }\r\n else {\r\n return true;\r\n }\r\n}\r\n// --\u003e\r\n","type":"text/javascript"
}|
ValidatorOnLoad is used to change the string function name stored in validator.evaluationfunction into a function object. On Safari, the code above is never run, so (for example) ValidatorCallout's attempts to wrap that in a delegate for this._originalValidationMethod fail.
Because this is an ASP.NET AJAX issue, the best we could do would be to detect the string-ness of .evaluationfunction and fix it up ourselves like ValidatorOnLoad does.
A side effect of this is that ValidatorCallout's .dispose null-derefs because of the inconsistent state. I found that the following code seems to take care of that:
< $removeHandler(this._closeImage, "click", this._closeClickHandler);
---
> this._focusHandler = null;
> if (this._closeClickHandler) {
> if (this._closeImage) {
> $removeHandler(this._closeImage, "click", this._closeClickHandler);
> }
> this._closeClickHandler = null;
> }
Comments: This ticket was filed for a pre-15.1 version of AJAX Control Toolkit. If this is still an issue in v15.1 or later, please create a new inquiry.
The relevant part of the data that comes back from the async postback looks like this:
|ScriptContentWithTags|{"text":"\r\n\u003c!--\r\nvar Page_ValidationActive
= false;\r\nif (typeof(ValidatorOnLoad) == \"function\") {\r\n ValidatorOnLoad();\r\n}\r\n\r\nfunction
ValidatorOnSubmit() {\r\n if (Page_ValidationActive) {\r\n return ValidatorCommonOnSubmit
();\r\n }\r\n else {\r\n return true;\r\n }\r\n}\r\n// --\u003e\r\n","type":"text/javascript"
}|
ValidatorOnLoad is used to change the string function name stored in validator.evaluationfunction into a function object. On Safari, the code above is never run, so (for example) ValidatorCallout's attempts to wrap that in a delegate for this._originalValidationMethod fail.
Because this is an ASP.NET AJAX issue, the best we could do would be to detect the string-ness of .evaluationfunction and fix it up ourselves like ValidatorOnLoad does.
A side effect of this is that ValidatorCallout's .dispose null-derefs because of the inconsistent state. I found that the following code seems to take care of that:
< $removeHandler(this._closeImage, "click", this._closeClickHandler);
---
> this._focusHandler = null;
> if (this._closeClickHandler) {
> if (this._closeImage) {
> $removeHandler(this._closeImage, "click", this._closeClickHandler);
> }
> this._closeClickHandler = null;
> }
Comments: This ticket was filed for a pre-15.1 version of AJAX Control Toolkit. If this is still an issue in v15.1 or later, please create a new inquiry.