Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

Numeric validation + fix 12 Dec 2012 11:29 #6028

Hello,

I found a minor issue with the numeric validation rule (using Cook 2.0). I have a required number field (int) in a table, for which 0 is an valid value. The JQuery validation works fine, but when the form rule is invoked from the server it generates an error when '0' is entered.

By looking at the code for the validation I spotted the issue. It is in in the /classes/rule.php class. When it does the required and empty check in the beginning of the testDefaults method it uses PHP's empty method to test if a value has been provided. However, this function considers values like 0, or 0.0, or '0' to be empty!

I fixed it as follows around line 96 in the testDefaults method:
		if ($required && empty($value))
		{
                    // valid when not numeric, or when it is a valid value
                    return (($element['validate']!="numeric")||(is_numeric($value)));
//			return false;
		}

Kind regards,

Misha
The following user(s) said Thank You: JoomGuy

Please Log in or Create an account to join the conversation.

Re: Numeric validation + fix 15 Dec 2012 14:22 #6112

  • admin
  • admin's Avatar
  • Offline
  • Administrator
  • Administrator
  • Chef
  • Posts: 3711
  • Thank you received: 986
You cannot write this code there, because testDefaults() is called by all rules, even not numeric.

I suggest you to write this in the numeric rule file.

Will check this...
Coding is now a piece of cake

Please Log in or Create an account to join the conversation.

  • Page:
  • 1
Time to create page: 0.089 seconds

Amazing Tool !
And only tool I know that allows complete Scaffolding in terms of component creation. It really saves loads of time (actually much more than that). Simple architecture enables quick and painless changes at any time. Code is clean and consintent. It's just... what's the word... neat! :) Great work! You should definetely try this one!

pi_wo (JED)
         

Get Started