Recently, I encountered a dilemma when designing a button on a mobile app.
Here is the case. On the screen where I place the button, the user is required to fill in some information (but not all text fields are mandatory). At the bottom, there are two buttons: send now and send later. As long as the user completes the mandatory fields, Send Later is enabled.
A bit more background information: The app is to help users record real-time readings and send them back. But because the network in the working environment can be very unstable and due to users' job attibutes, they can consciously choose to send the data immediately or send it back later (could because of offline mode or they want to send all data at once). And after the user clicks Send now, they will be led to a screen where they are required to enter their credentials and then their data will be sent. while Send later button doesn't serve "save as draft" function because users cannot edit the data afterwards. And unlike outbox function, the saved items won't be sent automatically since users' credentials are required.
The question is that when the user completes the mandatory fields, I 'm not sure if Send Now button should just be simply disabled under offline mode, or it should be enabled and after the user clicks it, there will be a popup saying "No network available".
To disable the button does make the workflow much simpler, because when offline, the user has to click send later anyway. But keeping the button clickable seems a standard design (so only the mandatory fields control status of a button, but normally there is only one button, for example, Log in).