Hello in our country people use comma’s and dots as a decimal seperator.
1,50 as well as 1.50
Is there a way instead of getting notified that 1,50 isn’t a number,
to change the comma in a dot.
By key press up (jQuery), or before getting notified that the input isn’t a number.
I’m using the Basic template, please tell me where and which files to adjust or override.
Thanks in advance,
Greetings from Holland!
         
        
           
         
            
       
      
        
          
          
            CeBe  
          
              
                May 19, 2014,  1:22pm
               
              2 
           
         
        
          You can adjust the NumberValidator::$numberPattern property to include comma or dot:
[['myAttribute'], 'number', 'numberPattern' => '/^\s*[-+]?[0-9]*[.,]?[0-9]+([eE][-+]?[0-9]+)?\s*$/'],
http://www.yiiframework.com/doc-2.0/yii-validators-numbervalidator.html#$numberPattern-detail 
         
        
           
         
            
       
      
        
          
          
            mmx  
          
              
                May 19, 2014,  2:18pm
               
              3 
           
         
        
          
Hello in our country people use comma’s and dots as a decimal seperator.
1,50 as well as 1.50
Is there a way instead of getting notified that 1,50 isn’t a number,
to change the comma in a dot.
By key press up (jQuery), or before getting notified that the input isn’t a number.
I’m using the Basic template, please tell me where and which files to adjust or override.
Thanks in advance,
Greetings from Holland!
 
 
Have you considered using a spinner rather than an input element. A spinner would eliminate the problem. Take a look at the Kartik-v/Yii2-Widgets extension.
         
        
           
         
            
       
      
        
        
          
That looks good, but where do I put my "before update" code to transform the comma to a dot before saving to my database?
         
        
           
         
            
       
      
        
        
          
A very good idea! Thanks I’ll look into it as well…
         
        
           
         
            
       
      
        
        
          
Got it, I’ve adjusted the rules of my model
public function rules() {
        return [
            [['prod_name', 'prod_price'], 'required'],
            [['prod_price'], 'number', 'numberPattern' => '/^\s*[-+]?[0-9]*[.,]?[0-9]+([eE][-+]?[0-9]+)?\s*$/'],
            [['prod_name'], 'string', 'max' => 40],
            [['prod_name'], 'unique']
        ];
    }
And added the beforeSave to my model
public function beforeSave($insert) {
        if (parent::beforeSave($insert)) {
            $this->prod_price = str_replace(",", ".", $this->prod_price);
            return true;
        } else {
            return false;
        }
    }