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
|
|
}
|
|
}
|