Skip to main content
Known Participant
January 26, 2015
Question

CFForm validation and onclick before submit

  • January 26, 2015
  • 1 reply
  • 1228 views

I have been trying to validate a few fields before submitting a form. Once the fields are validated by CF I want to pop up a sign in form if the user is not signed in. However, the problem is that the sign in form is pop up without validation.

inquiry.cfm

<cfif not isdefined("form.p1")>
  
<cfform name="inquire" action="inquiry.cfm" method="post">
  
<input type="hidden" name="p1" value="1">
  
<cfinput type="text" name="email" size="50" maxlength="50" required="yes" autofocus="on" validate="email">
  
<cfinput type="text" name="subject" size="50" maxlength="50" required="yes" validate="noblanks">
  
<cftextarea name="message" cols="45" rows="8" wrap="soft" required="yes" validate="noblanks"></cftextarea>
  
<cfif signedin>
  
<input type="submit" value=" Send ">
  
<cfelse>
  
<input type="submit" value=" Send " onclick="signin(); return false">
  
</cfif>
<cfelse>
  do stuff....
</cfif>


The "signin" function will pop up the sign in form.

What I have tried so far besides the above:

  1. onSubmit instead of onClick. But I don't want to submit the form until the user is signed in. 
  2. putting the onClick in the CFFORM tag but CF validation and sign in screen will pop up at the same time. After dismiss the CF fields validation screen but only complete the sign in screen will submit the blank form i.e. no validation.
  3. using CFINPUT tag instead of INPUT. Made no difference but also messed up the button text.

Any help is appreciated. Thanks in advance.

This topic has been closed for replies.

1 reply

BKBK
Community Expert
Community Expert
January 27, 2015

You could improve the design immensely. The usual steps in applications that use sign-in are as follows.

Enable session management. The ColdFusion application will then keep track of individual visitors.

When a user visits, anywhere in the application, check if he is signed in. If not, send him to sign-in page. The sign-in page, say, signin.cfm, is on the server. It consists of ColdFusion code, not Javascript.

jackhuangAuthor
Known Participant
January 29, 2015

The problem is only certain function requires login.  So I am stuck. 

BKBK
Community Expert
Community Expert
January 29, 2015

You could still follow the above steps, restricting the implementation only to the part that requires login. For example, you could restrict the functionality to a given directory, giving it its own Application.cfc file.