Core: fix remote validation when input is the same as in aborted request #2481
+49
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2479
Description
There is a bug in remote validation: if the Ajax request for a remote validation rule fails, an incorrect result will be stored in
$element.data('previousValue')
. Then, if the same input is validated again, the previous incorrect result will be re-used and no Ajax request will be sent.In particular, this bug will occur when a request is aborted. Which happens more often (as it should) since #2435 was merged. (although the bug could already occur before #2435 in case of a server error).
I also had to fix the
"remote, data previous querystring"
test. It turns out the mocked request for this test was wrong. Which didn't matter before this PR: the failed remote validation was incorrectly considered as a validation result.