Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Validation Xbasic

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Validation Xbasic

    I've got a web UX component and I'm trying to figure out a way to validate the fields. I'm running an Xbasic function from the Submit button, so no stock submit(). I've tried doing an if then type statement, but can't get any effective way figured out. Seems like the stock Validation is for the regular submit or tab out of fields. I want it to validate on click of the button.

    Any ideas?

  • #2
    Re: Validation Xbasic

    why not just do the validating in the on-click event.
    You still have the option of canceling the new values if they don't
    pass your validation.

    Comment


    • #3
      Re: Validation Xbasic

      I figured out a way to do it within the Xbasic function, but can't figure out how to independently validate each field. How this is written it will return only the ShipLName (or the second if) if both are blank. If I have an entry in ShipFName (or the first entry) it will not return the validation. I guess the question would be, how to independently validate these and have them return the CANNOT BE BLANK if blank. I have all the other address fields to do as well.


      Code:
      dim ShipFName as c
      ShipFName = e.dataSubmitted.ShipFName
      
      if ShipFName = "" then
         dim js as c
         js = "$('fn').innerHTML = 'First Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
         stripeChargeCreate = js
         
      		dim ShipLName as c
      		ShipLName = e.dataSubmitted.ShipLName
      		
      		if ShipLName = "" then
      		   dim js as c
      		   js = "$('ln').innerHTML = 'Last Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
      		   stripeChargeCreate = js
      		end if
         
      else 
      
         ***rest of script.***
      
      end if

      Comment


      • #4
        Re: Validation Xbasic

        Wouldn't a second if/then block allow for js = js+{additional js code} ?

        Comment


        • #5
          Re: Validation Xbasic

          This works. Am I doing this right? I would keep adding blocks for each field. I assume there's a way to shorten this all up.

          Code:
          dim ShipFName as c
          ShipFName = e.dataSubmitted.ShipFName
          dim ShipLName as c
          ShipLName = e.dataSubmitted.ShipLName
          dim ShipAdd1 as c
          ShipAdd1 = e.dataSubmitted.ShipAdd1
          
          if ShipFName = "" then
             dim js as c
             js = "$('fn').innerHTML = 'First Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
             setShip = js
             
          end if
             
          if ShipLName = "" then
          
             dim js as c
             js = js + "$('ln').innerHTML = 'Last Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
             setShip = js
             
          end if
          
          if ShipAdd1 = "" then
          
             dim js as c
             js = js + "$('a1').innerHTML = 'Last Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
             setShip = js
            
          end if

          Comment


          • #6
            Re: Validation Xbasic

            One issue. I still have the rest of the code to execute and if I add it after the last 'end if', running the script just runs the code after that 'end if'. What's your suggestion to run through those if then statements and if they all are false, (or all have values) THEN run the rest of the script?


            Code:
            dim ShipFName as c
            ShipFName = e.dataSubmitted.ShipFName
            dim ShipLName as c
            ShipLName = e.dataSubmitted.ShipLName
            dim ShipAdd1 as c
            ShipAdd1 = e.dataSubmitted.ShipAdd1
            
            if ShipFName = "" then
               dim js as c
               js = "$('fn').innerHTML = 'First Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
               stripeChargeCreate = js
            else
            	js = "$('fn').innerHTML = 'First Name aaa';"
            
            end if
               
            if ShipLName = "" then
            
               dim js as c
               js = js + "$('ln').innerHTML = 'Last Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
               stripeChargeCreate = js
            else
            	js = "$('fn').innerHTML = 'Last Name';"
            	   
            end if
            
            if ShipAdd1 = "" then
            
               dim js as c
               js = js + "$('a1').innerHTML = 'Last Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
               stripeChargeCreate = js
            else
            	js = "$('fn').innerHTML = 'Address 1';"
            	
            end if
            
            MORE CODE TO RUN

            Comment


            • #7
              Re: Validation Xbasic

              Argh! No, that doesn't work as designed. Doesn't validate properly. Still working...

              Comment


              • #8
                Re: Validation Xbasic

                Ok. I know this won't work as designed. The idea is to check the field, if ok, goto ProcessStripe:. However, as written, if any field is false, it will run the ProcessStripe code. So, I need to have them ALL return false (or validate properly with an entry) and THEN ProcessStripe.


                Code:
                dim ShipFName as c
                ShipFName = e.dataSubmitted.ShipFName
                dim ShipLName as c
                ShipLName = e.dataSubmitted.ShipLName
                dim ShipAdd1 as c
                ShipAdd1 = e.dataSubmitted.ShipAdd1
                
                
                
                if ShipFName = "" then
                   dim js as c
                   js = "$('fn').innerHTML = 'First Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
                   stripeChargeCreate = js
                else
                	dim js as c
                	js =  "$('fn').innerHTML = 'First Name';"
                	stripeChargeCreate = js
                	goto ProcessStripe
                end if
                   
                if ShipLName = "" then
                
                   dim js as c
                   js = js + "$('ln').innerHTML = 'Last Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
                   stripeChargeCreate = js
                else
                	dim js as c
                	js = js + "$('ln').innerHTML = 'Last Name';"
                	stripeChargeCreate = js
                	goto ProcessStripe   
                end if
                
                if ShipAdd1 = "" then
                
                   dim js as c
                   js = js + "$('a1').innerHTML = 'Last Name &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
                   stripeChargeCreate = js
                else
                	dim js as c
                	js = js + "$('a1').innerHTML = 'Address 1';"
                	stripeChargeCreate = js
                	goto ProcessStripe
                end if
                
                end
                
                ProcessStripe:
                
                ****   Rest of code   *****
                
                
                end

                Comment


                • #9
                  Re: Validation Xbasic

                  I haven't tried , but I would use a pointer array and a loop.
                  The code below has been lightly tested, but should work.
                  If you want, you can ignore the dim ShipFname type lines, and assign the value directly to validated[].fieldVal (ex: validated[].fieldVal = e.datasubmitted.ShipFName ) .

                  Code:
                  dim validated[0] as p
                  dim js as c
                  dim tracker as n = 0
                  dim ShipFName as c = e.dataSubmitted.ShipFName
                  dim ShipLName as c = e.dataSubmitted.ShipLName
                  dim ShipAdd1 as c = e.dataSubmitted.ShipAdd1
                  
                  
                  
                  validated[].swap = "First Name"
                  validated[..].fieldVal = shipFname 'e.dataSubmitted.ShipFName
                  
                  validated[].swap = "Last Name"
                  validated[..].fieldVal = shipLname 'e.dataSubmitted.ShipLName
                  
                  validated[].swap = "Shipping Address1"
                  validated[..].fieldVal = ShipAdd1 'e.dataSubmitted.ShipAdd1
                  js = ""
                  
                  
                  for each fld in validated
                  	tempJS = ""
                  	tracker = tracker+1
                  	if isnull(validated[tracker].fieldVal) then
                  		tempJS = "$('fn').innerHTML = '<swapit> &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
                  		tempJS = strtran(tempJS,"<swapit>",validated[tracker].swap)
                  		js = js + tempJS
                  	end if
                  next

                  Comment


                  • #10
                    Re: Validation Xbasic

                    You added that part while I was doing some testing.
                    Let's try this.
                    Code:
                    dim validated[0] as p
                    dim allValidated as c = ""
                    dim js as c
                    dim tracker as n = 0
                    dim ShipFName as c = e.dataSubmitted.ShipFName
                    dim ShipLName as c = e.dataSubmitted.ShipLName
                    dim ShipAdd1 as c = e.dataSubmitted.ShipAdd1
                    
                    
                    
                    validated[].swap = "First Name"
                    validated[..].fieldVal = shipFname 'e.dataSubmitted.ShipFName
                    
                    validated[].swap = "Last Name"
                    validated[..].fieldVal = shipLname 'e.dataSubmitted.ShipLName
                    
                    validated[].swap = "Shipping Address1"
                    validated[..].fieldVal = ShipAdd1 'e.dataSubmitted.ShipAdd1
                    js = ""
                    
                    
                    for each fld in validated
                    	tempJS = ""
                    	tracker = tracker+1
                    	if isnull(validated[tracker].fieldVal) then
                    		allValidated = "false"
                    		tempJS = "$('fn').innerHTML = '<swapit> &nbsp &nbsp &nbsp<font color=\"red\"> CANNOT BE BLANK</font>';"
                    		tempJS = strtran(tempJS,"<swapit>",validated[tracker].swap)
                    		js = js + tempJS
                    	end if
                    next
                    if allValidated <> "false" then
                    	'do the rest of the stuff here
                    end if

                    Comment


                    • #11
                      Re: Validation Xbasic

                      It doesn't error, but doesn't do anything as well. This code is just a little bit above my level. I'm almost there, but not quite.

                      Comment


                      • #12
                        Re: Validation Xbasic

                        If I add something to each field, it processes the allValidated just fine.

                        Comment


                        • #13
                          Re: Validation Xbasic

                          Here's a test component.

                          validation.zip

                          Comment


                          • #14
                            Re: Validation Xbasic

                            You need the setship = js to be outside the if/then statement.

                            Comment


                            • #15
                              Re: Validation Xbasic

                              I added that to do the alert box. Is that needed for the other parts?

                              Comment

                              Working...
                              X