私の選択ボックスのhtmlは次のとおりです。
<select class=" reason_swap" id="call_type" name="call_type">
<option value=""></option>
<option title="OK - NO CHANGES" selected="" value="NC">OK - NO CHANGES</option>
<option title="OK - PENDING AUTH" value="PA">OK - PENDING AUTH</option>
<option title="OK - PENDING INS" value="IN">OK - PENDING INS</option>
<option title="OK - PENDING INS/PO" value="PI">OK - PENDING INS/PO</option>
<option title="OK - PENDING PO" value="PO">OK - PENDING PO</option></select>
このリフォーカス機能を使用して、これら 3 つのフィールドを必須にしています。
if ($this->call_type == 'NC' && $this->times_testing == '') $this->refocus('times_testing');
if ($this->call_type == 'PA' && $this->times_testing == '') $this->refocus('times_testing');
if ($this->call_type == 'IN' && $this->times_testing == '') $this->refocus('times_testing');
私が抱えている唯一の問題は、アラートがどのようにスローされるかについてうるさいことです.5つのオプションしかなく、5つのうち3つが基準に一致しない場合にアラートを出すので、それをしたいだけです.逆に...
post にアラート/リフォーカスするよりも PI または PO でない場合。
私はそれが簡単だと思った..次のようなもの:
if (!$this->call_type == 'PI' && !$this->call_type == 'PO' && $this->times_testing == '') $this->refocus('times_testing');
しかし、無駄に、それはうまくいきませんでした。
どんな助けでも大歓迎です。ありがとうございました。
リフォーカス機能は次のとおりです。
protected function refocus($name, $msg = '')
{
if (!$name) return;
$this->halt = 1;
$out = $msg ? $msg : _to_caps($name) . " is required...";
$nest = $this->nest ? $this->nest . $name : $name; // no brackets on the name here since not allowed in HTML ids
\Message::add("$out<input type='hidden' value='$nest' id='__refocus'>", 'not_ok');
}