Skip to content

Commit

Permalink
Forms: fixed some bugs in validation
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed Jan 5, 2010
1 parent b6fc2c8 commit 7dcb054
Show file tree
Hide file tree
Showing 10 changed files with 38 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Nette/Forms/Controls/FormControl.php
Expand Up @@ -563,7 +563,7 @@ public static function validateEqual(IFormControl $control, $arg)
$value = $control->getValue();
foreach ((is_array($value) ? $value : array($value)) as $val) {
foreach ((is_array($arg) ? $arg : array($arg)) as $item) {
if ($val === (string) ($item instanceof IFormControl ? $item->value : $item)) {
if ((string) $val === (string) ($item instanceof IFormControl ? $item->value : $item)) {
return TRUE;
}
}
Expand Down
7 changes: 4 additions & 3 deletions Nette/Forms/Renderers/InstantClientScript.php
Expand Up @@ -216,10 +216,11 @@ private function getClientScript(IFormControl $control, $operation, $arg)
return 'res = /^.+\.[a-z]{2,6}(\\/.*)?$/i.test(nette.getValue('.$elem.'));';

case $operation === ':regexp' && $control instanceof TextBase:
if (strncmp($arg, '/', 1)) {
throw new /*\*/InvalidStateException("Regular expression '$arg' must be JavaScript compatible.");
if (!preg_match('#^(/.*/)([imu]*)$#', $arg, $matches)) {
return NULL; // regular expression must be JavaScript compatible
}
return "res = nette.getValue($elem).test(val);";
$arg = $matches[1] . str_replace('u', '', $matches[2]);
return "res = $arg.test(nette.getValue($elem));";

case $operation === ':integer' && $control instanceof TextBase:
return "res = /^-?[0-9]+$/.test(nette.getValue($elem));";
Expand Down
4 changes: 3 additions & 1 deletion Nette/Forms/Renderers/InstantClientScript.phtml
Expand Up @@ -81,7 +81,9 @@ nette.validateForm = function(sender) {
for (var name in validators) {
var error = validators[name](sender);
if (error) {
form[name].focus();
if (form[name].focus) {
form[name].focus();
}
alert(error);
return false;
}
Expand Down
16 changes: 8 additions & 8 deletions Nette/loader.php
Expand Up @@ -24,14 +24,14 @@
throw new Exception('Nette Framework requires PHP 5.2.0 or newer.');
}

/**/require dirname(__FILE__) . '/compatibility/PHP.php';/**/
require dirname(__FILE__) . '/exceptions.php';
require dirname(__FILE__) . '/Framework.php';
require dirname(__FILE__) . '/Object.php';
require dirname(__FILE__) . '/ObjectMixin.php';
require dirname(__FILE__) . '/Loaders/LimitedScope.php';
require dirname(__FILE__) . '/Loaders/AutoLoader.php';
require dirname(__FILE__) . '/Loaders/NetteLoader.php';
/**/require_once dirname(__FILE__) . '/compatibility/PHP.php';/**/
require_once dirname(__FILE__) . '/exceptions.php';
require_once dirname(__FILE__) . '/Framework.php';
require_once dirname(__FILE__) . '/Object.php';
require_once dirname(__FILE__) . '/ObjectMixin.php';
require_once dirname(__FILE__) . '/Loaders/LimitedScope.php';
require_once dirname(__FILE__) . '/Loaders/AutoLoader.php';
require_once dirname(__FILE__) . '/Loaders/NetteLoader.php';


/*Nette\Loaders\*/NetteLoader::getInstance()->base = dirname(__FILE__);
Expand Down
4 changes: 3 additions & 1 deletion tests/Forms/Forms.example.001.expect
Expand Up @@ -207,7 +207,9 @@ nette.validateForm = function(sender) {
for (var name in validators) {
var error = validators[name](sender);
if (error) {
form[name].focus();
if (form[name].focus) {
form[name].focus();
}
alert(error);
return false;
}
Expand Down
4 changes: 3 additions & 1 deletion tests/Forms/Forms.example.004.expect
Expand Up @@ -255,7 +255,9 @@ nette.validateForm = function(sender) {
for (var name in validators) {
var error = validators[name](sender);
if (error) {
form[name].focus();
if (form[name].focus) {
form[name].focus();
}
alert(error);
return false;
}
Expand Down
4 changes: 3 additions & 1 deletion tests/Forms/Forms.example.007.expect
Expand Up @@ -172,7 +172,9 @@ nette.validateForm = function(sender) {
for (var name in validators) {
var error = validators[name](sender);
if (error) {
form[name].focus();
if (form[name].focus) {
form[name].focus();
}
alert(error);
return false;
}
Expand Down
8 changes: 7 additions & 1 deletion tests/Forms/Forms.example.submit.001.expect
Expand Up @@ -39,6 +39,10 @@
<ul class="error">
<li>Enter your age</li>

<li>Enter your shipping address</li>

<li>Select your country</li>

<li>Reenter your password</li>
</ul>

Expand Down Expand Up @@ -214,7 +218,9 @@ nette.validateForm = function(sender) {
for (var name in validators) {
var error = validators[name](sender);
if (error) {
form[name].focus();
if (form[name].focus) {
form[name].focus();
}
alert(error);
return false;
}
Expand Down
4 changes: 3 additions & 1 deletion tests/Forms/Forms.example.submit.004.expect
Expand Up @@ -265,7 +265,9 @@ nette.validateForm = function(sender) {
for (var name in validators) {
var error = validators[name](sender);
if (error) {
form[name].focus();
if (form[name].focus) {
form[name].focus();
}
alert(error);
return false;
}
Expand Down
4 changes: 3 additions & 1 deletion tests/Forms/Forms.example.submit.007.expect
Expand Up @@ -194,7 +194,9 @@ nette.validateForm = function(sender) {
for (var name in validators) {
var error = validators[name](sender);
if (error) {
form[name].focus();
if (form[name].focus) {
form[name].focus();
}
alert(error);
return false;
}
Expand Down

0 comments on commit 7dcb054

Please sign in to comment.