- Fixed Trac #224: properly validate non-mandatory integer fields.

SVN:trunk[768]
This commit is contained in:
Denis Flaven
2010-09-05 13:20:09 +00:00
parent 798558f331
commit d892005e7f
2 changed files with 9 additions and 4 deletions

View File

@@ -1078,7 +1078,12 @@ abstract class cmdbAbstractObject extends CMDBObject
$sPattern = addslashes($oAttDef->GetValidationPattern()); //'^([0-9]+)$';
if (!empty($aEventsList))
{
$oPage->add_ready_script("$('#$iId').bind('".implode(' ', $aEventsList)."', function(evt, sFormId) { return ValidateField('$iId', '$sPattern', $bMandatory, sFormId) } );"); // Bind to a custom event: validate
$sNullValue = $oAttDef->GetNullValue();
if (!is_numeric($sNullValue))
{
$sNullValue = "'$sNullValue'"; // Add quotes to turn this into a JS string if it's not a number
}
$oPage->add_ready_script("$('#$iId').bind('".implode(' ', $aEventsList)."', function(evt, sFormId) { return ValidateField('$iId', '$sPattern', $bMandatory, sFormId, $sNullValue) } );"); // Bind to a custom event: validate
}
$aDependencies = MetaModel::GetDependentAttributes($sClass, $sAttCode); // List of attributes that depend on the current one
if (count($aDependencies) > 0)

View File

@@ -150,15 +150,15 @@ function CheckFields(sFormId, bDisplayAlert)
return (oFormErrors['err_'+sFormId] == 0); // If no error, submit the form
}
function ValidateField(sFieldId, sPattern, bMandatory, sFormId)
function ValidateField(sFieldId, sPattern, bMandatory, sFormId, nullValue)
{
var bValid = true;
var currentVal = $('#'+sFieldId).val();
if (bMandatory && ((currentVal == '') || (currentVal == 0) || (currentVal == '[]')))
if (bMandatory && (currentVal == nullValue))
{
bValid = false;
}
else if ((currentVal == '') || (currentVal == 0) || (currentVal == '[]'))
else if (currentVal == nullValue)
{
// An empty field is Ok...
bValid = true;