。
何か他の人が見逃したことは、最初のshowtime要素の状態をページに読み込むタイミングを確認する必要があることです。たとえば、選択したオプションとしてnon-consumable
をあらかじめ隠しておくこともできますし、選択したオプションconsumable
で表示することもできます。
これを行う必要がある大きな理由の1つは、「粘着性のある」フォームです。提出を試みた後にその価値を保持するフォームです。
これを行うには、私たちが取るべき行動を「機能化」するだけです。基本的には、それを行う関数を作成してから、イベントハンドラから呼び出すか、ページが準備できたらonReady
イベントから呼び出します。直接イベントハンドラに配置する代わりに。
したがって、オレンジはconsumable
で、緑色はnon-consumable
です。私は何かが見えるようにしたので、showtime
のorange
ボックスを追加しました。それから隠された場所を開いたままにするために、緑色のボックスに囲んでラップしました。主にこれは、ボックスが隠されたときに選択要素がジャンプするのを防ぐことでしたが、コントラストも気に入っていました。
それらの(すべての)ほとんどは逃したもう一つはこれです:私は
は説明
(function($){
$(document).ready(function(){
/* set state of showtime */
function setShowtimeState()
{
var text = $('#borrowitem').find('option:selected').text();
var Regx = new RegExp(/\bnon\-consumable\b/, 'i'); //case insensitive
if(Regx.test(text))
$('#showtime').hide();
else
$('#showtime').show();
}
//call on change of the select element
$('#borrowitem').change(setShowtimeState);
//call on ready to set the initial state
setShowtimeState();
});
})(jQuery);
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<div id="showtime-wrapper" style="margin-bottom: 5px;width:50px;height:50px;background:green; border: 1px solid black;">
<div id="showtime" style="width:100%;height:100%;background:orange;"> </div>
</div>
<select class="form-control input-lg borrowitem" name="borrowitem[]" required="required" id="borrowitem">
<option>- pick an option - </option>
<option>non-consumable</option>
<option>consumable</option>
<option>this is non-consumable</option>
<option>this is consumable</option>
<option>Case Insensitive NON-Consumable</option>
</select>
は下記を参照してください私の部分文字列を検索できるように
REGx
サブ文字列に一致する正規表現を使用しました。これはあなたがそれらを混乱させたことがない場合は少し複雑ですが、それはマッチするための最良の方法です。 REGXの終わりを|
/\bnon\-consumable\b/
だから
/
は、その開始をマークするために使用される区切り文字と呼ばれ、これを打破するために:私は、私は少しを使用するパターンを説明します
\b
は、単語境界に一致します。たとえば、を使用して、この文字列の単語境界をマークする場合|foobar| |is| |a| |word|
。その目的は、サブ文字列foo
を検索すると、foobar
に一致させることができますが、\bfoo\b
を検索すると、foo
とbar
の間に単語境界がないため一致しません。これは、サブ文字列の誤った一致を防ぐのに役立ちます。
- 「手紙」は単なる文字と文字
- の一致文字通り手紙は、その後、我々は
new RegExp
の第2引数はフラグですREGX
を終了クロージングdelimter /
を持っている、私はi
を使用大文字と小文字を区別しない一致の場合は、フラグを使用します。
詳細情報については、私が言及する義務を感じるhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
ことの一つは、あなたが、配列括弧で選択borrowitem[]
の名前を持っています。
- パス複数選択ボックスのために複数のフラグを設定し、サーバー
- にこの名前の要素と
両方のそれは複数選択します:これは通常、1 2の理由で行われていますこれらのコードにはいくつかの変更が必要です。しかし、3つ目の選択肢があります。
これで、選択したテキストが欲しいですか? –
あなたはセレクタが間違っています '$(" borrowitem ")'と '$(" #borrowitem option:selected ")' – ArtisticPhoenix