Ok, we reverted to 1.9.2 so hopefully it makes it clearer where things went weird. What I'm going to paste here is an absolute minimum snippet call, I know it needs other parameters, but this is just to demonstrate the validation. I'm also only going to include the HTML for a couple of the fields, not the entire form. There's nothing on it that would be affecting this.
I see in the 1.9.2 readme it says to include validation in the field name, not in the snippet call. But this is following the RTFM online instructions, where it says, "Validators in Login follow the same syntax as FormIt Validators. You can use the methods described there to use them in your Login-based snippets."
[[!Register?
&validate=`username:required` &username.vTextRequired=`Username is required.`]]
...
<div class="field">
<label for="username">Username</label>
<input type="text" name="username" id="username" class="input" value="[[!+username]]" size="20" />
[[!+error.username]]
</div>
<div class="field">
<label for="email">Email Address</label>
<input type="text" name="email" id="email" class="input" value="[[!+email]]" size="20" />
[[!+error.email]]
</div>
In 1.9.2, if I submit this blank, bizarrely, I actually get this:
<div class="field">
<label for="username">Username</label>
<input type="text" name="username" id="username" class="input" value="" size="20" />
<span class="error">Username is required.</span>
</div>
<div class="field">
<label for="email">Email Address</label>
<input type="text" name="email" id="email" class="input" value="" size="20" />
<span class="error">Username is required.</span>
</div>
Bizarrely being it reporting the same error in both placeholders. (In all field error placeholders on the form besides the ones I included above except for password confirmation, to be completely accurate, even though they aren't marked as required.) If I change the snippet call to this, it displays the correct error for the email. (Now the password field is showing the email error instead, so I'd have to do something for it as well. But overall, it essentially works.)
[[!Register? &validate=`username:required,email:required`
&username.vTextRequired=`Username is required.`
&email.vTextRequired=`Email Address is required.`]]
So now upgrading back up to 1.9.3 (completely uninstalling 1.9.2 just in case), changing nothing else and submitting the blank form, I get this, no errors:
<div class="field">
<label for="username">Username</label>
<input type="text" name="username" id="username" class="input" value="" size="20" />
</div>
<div class="field">
<label for="email">Email Address</label>
<input type="text" name="email" id="email" class="input" value="" size="20" />
</div>
So, I change the form to follow the instructions in the readme, and looking at the example chunk to make sure that the error placeholder hasn't changed, I still get no errors:
<div class="field">
<label for="username">Username</label>
<input type="text" name="username:required" id="username" class="input" value="" size="20" />
</div>
<div class="field">
<label for="email">Email Address</label>
<input type="text" name="email:required" id="email" class="input" value="" size="20" />
</div>
So I change it all completely to just use the example chunk, lgnRegisterFormTpl. Same result, it's not even working with the code that comes with it.
<label for="username">Username
<span class="error"></span>
</label>
<input type="text" name="username:required:minLength=6" id="username" value="" />
(I didn't include email since it's farther down the form this time, but same thing, no error.) I also tried it removing the FormIt-like code from the snippet and just calling [[!Register]], but still no errors.
Sorry this is so long, but I wanted to be thorough. Also, I know it's not my call, but my preference would be for it all to work like FormIt. It was nice that the registration worked using the same parameters and same types of placeholders that I'm used to using with every other form I do. Given that the validation doesn't even work now with the included chunk, and it didn't look like the placeholder changes affected it, I'm not sure how this is supposed to work now.