SELECT
JavaScript やその他の入力ソース (ドロップダウン ボックスなど) を使用してステートメントを変更できるようにする必要があります。以下のコードに時間を費やしましたremoveOpt()
。.ready()
しかし、私はそれを関数として機能させたり、変更されたときに呼び出されて実行されたりするのに苦労しましたdropdown1
。
関数が変数、特に変数のメモリを保持する必要もありますall_Opt
。これは、その中にあるものを再設定できるようにする必要があるためです。以下に試したことを載せておきます。removeOpt
変数/関数は、で直接使用すると機能.ready()
しますが、関数に入れると正しく機能しないようで、. ではまったく機能しません.change()
。
要するに、これは私がやろうとしていることであり、助けが必要です:
- 関数 removeOpt が有効かどうかを判断するか、有効なメソッドを見つけます
removeOpt
との両方.ready()
で実行したdropdown1
( ?を使用.change()
)- Make
all_Opt
inmyFunc
static (クロージャーメソッドを試す)
どんな助けでも大歓迎です!
Java スクリプト
(注: の行は、 のコードが で 機能する//CODE IN QUESTION
ことをテストおよび検証した後に追加されました 。)removeOpt()
.ready()
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
//Create 'removeOpt' function
var removeOpt = $(function() //CODE IN QUESTION
{
var regex_str = "^" + $("#prefix_select").val() + "-";
var dd1 = $("#dropdown1 option");
//Clone the 'None', Current, and All options into respective variables.
//All options are stored in order to allow different selection criteria
if(typeof all_Opt === 'undefined'){ //Used if all_Opt is a static variable
alert("defining 'all_Opt'");
var all_Opt = dd1.clone(true);
}
else{alert("not defining 'all_Opt'");}
var none_Opt = dd1.filter(":contains(None)").clone(true);
var cur_Opt = dd1.filter(function(){
return $(this).text().match(regex_str);
}).clone(true);
//Remove all options and replace the 'None' and Current options
dd1.remove();
noneOpt.appendTo($("#dropdown1"));
curOpt.appendTo($("#dropdown1"));
})(); //CODE IN QUESTION
//Setup .ready() and .change()
$(document).ready(removeOpt()); //CODE IN QUESTION
$("#dropdown1").change(removeOpt()); //CODE IN QUESTION
</script>
ドロップダウン
<!-- Used to limit options in "dropdown1" -->
<p>
<SELECT id="prefix_select">
<OPTION VALUE="AB" >AB</OPTION>
<OPTION VALUE="BB" >BB</OPTION>
<OPTION VALUE="ABB">ABB</OPTION>
</SELECT>
</p>
<!-- Is produced SERVER side and cannot be changed -->
<p>
<SELECT ID="dropdown1">
<OPTION VALUE="" >None</OPTION>
<OPTION VALUE="1000">AB-Item 1 Description</OPTION>
<OPTION VALUE="2001">AB-Item 2 Description</OPTION>
<OPTION VALUE="50" >AB-Item 8 Description</OPTION>
<OPTION VALUE="70" >BB-Item 3 Description</OPTION>
<OPTION VALUE="100" >BB-Item 5 Description</OPTION>
<OPTION VALUE="2" >ABB-Item 4 Description</OPTION>
</SELECT>
</p>