43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace nur\v\plugins;
 | |
| 
 | |
| use nur\v\BasePlugin;
 | |
| use nur\v\js;
 | |
| 
 | |
| /**
 | |
|  * Class setfocusPlugin: activer le focus sur un élément de formulaire
 | |
|  */
 | |
| class setfocusPlugin extends BasePlugin {
 | |
|   const HAVE_JQUERY = true;
 | |
| 
 | |
|   function __construct(?string $selector=null, ?bool $cond=null, bool $select=true) {
 | |
|     if ($selector === null) $selector = "input:text, textarea, select";
 | |
|     if ($cond === null) $cond = $selector? true: false;
 | |
|     $this->selector = $selector;
 | |
|     $this->cond = $cond;
 | |
|     $this->select = $select;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * @var string sélecteur pour le composant concerné. par défaut, prendre le
 | |
|    * premier élément de formulaire de type text, textarea ou select
 | |
|    */
 | |
|   protected $selector;
 | |
| 
 | |
|   /** @var bool ce plugin est-il activé? */
 | |
|   protected $cond;
 | |
| 
 | |
|   /** @var bool faut-il sélectionner le contenu de l'élément de formulaire? */
 | |
|   protected $select;
 | |
| 
 | |
|   function printJquery(): void {
 | |
|     if (!$this->cond) return;
 | |
|     ?>
 | |
| var $fi = $(<?=js::qv($this->selector)?>).filter(":first"); $fi.focus()
 | |
| <?php if ($this->select): ?>
 | |
| if ($fi.is("input")) $fi.select();
 | |
| <?php endif; ?>
 | |
| <?php
 | |
|   }
 | |
| }
 |