nur-sery/nur_src/v/plugins/setfocusPlugin.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
}
}