Ahhh that was the key, got it working.

Thanks for the help!

On Thu, Dec 10, 2015 at 3:51 PM Arthur Evans <[email protected]> wrote:

> I used a paper-input-container with an iron-input inside of it, so I could
> data bind to the input's native `invalid` property, like this:
>
> http://jsbin.com/beduga/9/edit?html,console,output
>
> In this case, the "webservice" makes sure that your username starts with
> "bob".
>
> Hope this helps,
> Arthur
>
>
> On Thu, Dec 10, 2015 at 12:43 PM, Aleem Mawani <[email protected]> wrote:
>
>> Thanks for the thoughtful response!
>>
>>
>> On Thu, Dec 10, 2015 at 10:43 AM Arthur Evans <[email protected]> wrote:
>>
>>> Yeah, I explored this a while back. It's confusing, because there are
>>> essentially three levels of enforcement:
>>>
>>> 1) Real-time input enforcement. Some inputs support a regex pattern,
>>> that controls what the user can actually type in the field.
>>> 2) Field & form validation (provided by iron-validator, for example). By
>>> default, this is invoked _when the user presses submit_.
>>> 3) The kind of validation you're talking about, using an async web
>>> request.
>>>
>>> In the case of validating using a webservice, you don't want to start
>>> when the user presses the submit button. You probably want to fire off a
>>> request when the input field loses focus. (Another, slightly more
>>> aggressive option is to fire off the request when the user stops typing for
>>> a certain period of type, like 500ms. However, I was unable to get this to
>>> work smoothly when I tried it.)
>>>
>>> It can be nice for the user if you do async form validation, so that you
>>> can enable/disable the submit button based on whether the form is valid,
>>> instead of waiting until they click the button and then pointing out the
>>> issue.
>>>
>>> The devil is in the details, but I think one working pattern is to do
>>> something like this:
>>>
>>>
>>>    - Whenever the user blurs a text area, or changes the state of a
>>>    checkbox or option, etc., perform a validation  check:
>>>    - If the field that changed requires remote validation, fire off a
>>>       web request and continue this process when the response comes back.
>>>
>>> This is the part I need help with. I can listen to change events on the
>> input and fire off the ajax call (throttled). However, when the webrequest
>> comes back and it is invalid, how do I mark the paper-input as such?
>>
>>>
>>>    - Check the validity on all of the fields, and enable/disable the
>>>       submit button accordingly.
>>>
>>> Ideally, you'd do some kind of periodic checks as well when the user
>>> isn't typing. Otherwise, the user can finish entering data in the last
>>> input field, and sit there waiting for the submit button to be enabled,
>>> which won't happen until they click elsewhere on the screen. But as I said,
>>> I didn't get that working when I was playing with this.
>>>
>>> Hope that helps.
>>>
>>> Cheers,
>>> Arthur
>>>
>>>
>>>
>>> On Thu, Dec 10, 2015 at 8:23 AM, <[email protected]> wrote:
>>>
>>>> I'm having a tough time finding any examples of validating input into a
>>>> paper-input when the validation needs to happen asynchronously. Looking at
>>>> the docs, implementing
>>>> https://elements.polymer-project.org/elements/iron-validator-behavior
>>>> doesn't work because you have to implement the validate() method which
>>>> returns a boolean (synchronously).
>>>>
>>>> I'm trying to validate the input of a paper-input against a webservice,
>>>> any ideas?
>>>>
>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>>>> ---
>>>>
>>> You received this message because you are subscribed to the Google
>>>> Groups "Polymer" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>
>>>
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/polymer-dev/9c4dbc32-de42-4396-adf8-afccd7004a22%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/polymer-dev/9c4dbc32-de42-4396-adf8-afccd7004a22%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CADBYpymKKJycMQW5rdGWzfUxsfskYKDW1L2S75%2BXQ0a%3D_mdJjA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to