Well, here are some more items.
A)
You should not normally be using the Service Locator
pattern to "get" the location of loginBean. JSF is about Inversion of Control, so the preferred way is that the loginBean is injected automatically into the bean you are working with without any user logic or reference to JSF-specific code and data objects.
B) If you are expecting the valueChangeEvent listener to be fired automatically when the user updates the GUI, that's not how that works, either. JSF is based on HTTP, HTTP doesn't connect-and-converse the way client/server does, but instead works with paired request/response messages, with requests being initiated by commandButtons, commandLinks or explicit entry of a URL in the user's browser navigation control. The valueChangeListener gets invoked ONLY if all of the submitted data is valid, and then only if the control that it is attached to has an actual change of value.
C) Javascript manipulation of the "rendered", "disabled", and certain other JSF control properties doesn't always work the way it would for basic HTML. Also, the control IDs used by JavaScript are not the same values as the "id=" attribute on the JSF control.