$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
どうやら、isChecked
動作しません。だから私の質問はこれを行う適切な方法は何ですか?ありがとう。
$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
どうやら、isChecked
動作しません。だから私の質問はこれを行う適切な方法は何ですか?ありがとう。
回答:
更新
選択したオプションに対するより直接的なjQueryメソッドは次のとおりです。
var selected_option = $('#mySelectBox option:selected');
質問に答える.is(':selected')
ことはあなたが探しているものです:
$('#mySelectBox option').each(function() {
if($(this).is(':selected')) ...
jQuery以外の(おそらくベストプラクティス)方法は次のとおりです。
$('#mySelectBox option').each(function() {
if(this.selected) ...
ただし、選択した値を探しているだけの場合は、以下を試してください。
$('#mySelectBox').val()
選択した値のテキストを探している場合は、次のようにします。
$('#mySelectBox option').filter(':selected').text();
チェックアウト:http : //api.jquery.com/selected-selector/
次回は重複するSOの質問を探します:
現在選択されているオプションを取得する か、 選択されたオプションを設定する か 、jQueryで$(this)選択されたオプションを取得する方法? または option [selected = true]が機能しない
this.selected
代わりに使用できます$(this).is(":selected")
。これにはjsperfは必要ありません。私はjQueryの使用に反対することはありません!しかし、必要なときに使用します。オーバーヘッドとコードを追加するだけの場合ではありません。
this.selected
は完全に有効ですが、彼はそれを行うための適切なjQuery方法を求めました。
選択したオプションは次の方法で取得できます。
$('#mySelectBox option:selected')...
しかし、すべてのオプションを反復したい場合は、存在しないもののthis.selected
代わりにそれを実行してくださいthis.isChecked
:
$('#mySelectBox option').each(function() {
if (this.selected)
alert('this option is selected');
else
alert('this is not');
});
更新:
あなたはこれを使用することを提案するたくさんの答えを得ました:
$(this).is(':selected')
まあ、それははるかに速く簡単に行うことができます this.selected
できるので、なぜネイティブDOM要素メソッドではなくそれを使うべきなのでしょうか?!
this.selected
たすべての人に使用しました。jQueryの乱用/乱用に関するコメントに同意します。jQueryを知ることの一部は、いつ使用しないかを知ることです。':selected'
ただし、セレクターはカスタムSizzleセレクターであるため、このセレクターを使用するとquerySelectorAll
、サポートされているブラウザーでのの使用が無効になることに注意してください。すばらしい短いコードを提供するので、それは間違いなく世界の終わりではありませんが、個人的にはシズルのみのものを避けがちです。
に慣れていない場合is()
、またはに慣れていない場合は、の値を確認してくださいprop("selected")
。
$('#mySelectBox option').each(function() {
if ($(this).prop("selected") == true) {
// do something
} else {
// do something
}
});
編集:
@gdoronがコメントで指摘したように、オプションの選択されたプロパティにアクセスするためのより高速で最も適切な方法は、DOMセレクターを使用することです。これは、このアクションを表示するフィドルアップデートです。
if (this.selected == true) {
も動作するようです!ありがとうgdoron。
$(this).prop("selected")
代わりに使用する理由を教えてくださいthis.selected
。それはあなたに何を与えるのですか?ps私は賛成投票ではありません...
is
使用するのが最適かわかりませんが、propとattrでプロパティにアクセスするのが好きです。ほとんどのシナリオでは、それはまさしく好みの問題かもしれません。はい、好奇心旺盛な反対投票があります。
jQuery
.is()
$(...).is('.foo > [name="aaa"] input') or for properties that are not native DOM elements properties like
$(this).is(':selected')
受け入れられるようにstackoverflowのベストプラクティスを学ぶために使用されるべきではなく、一般的な間違いが...。)
あなたはjqueryでこのように使うことができます:
$(document).ready(function(){
$('#panel_master_user_job').change(function () {
var job = $('#panel_master_user_job').val();
alert(job);
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="job" id="panel_master_user_job" class="form-control">
<option value="master">Master</option>
<option value="user">User</option>
<option value="admin">Admin</option>
<option value="custom">Custom</option>
</select>
使用する
$("#mySelectBox option:selected");
特定のオプションかどうかをテストするにはmyoption
:
if($("#mySelectBox option:selected").text() == myoption){
//...
}
myoption
???
これを選択リストと考えてください:
<select onchange="var optionVal = $(this).find(':selected').val(); doSomething(optionVal)">
<option value="mostSeen">Most Seen</option>
<option value="newst">Newest</option>
<option value="mostSell">Most Sell</option>
<option value="mostCheap">Most Cheap</option>
<option value="mostExpensive">Most Expensive</option>
</select>
次に、選択したオプションを次のようにチェックします。
function doSomething(param) {
if ($(param.selected)) {
alert(param + ' is selected!');
}
}
私の場合、selectionが常にtrueである理由がわかりません。だから私が考えることができた唯一の方法は:
var optionSelected = false;
$( '#select_element option' ).each( function( i, el ) {
var optionHTMLStr = el.outerHTML;
if ( optionHTMLStr.indexOf( 'selected' ) > 0 ) {
optionSelected = true;
return false;
}
});
選択したオプションをJavaScriptで確認する場合
最も簡単な方法は、そのタグにonchange属性を追加し、jsファイルに関数を定義することです。htmlファイルに次のようなオプションがある場合は、例を参照してください
<select onchange="subjects(this.value)">
<option>Select subject</option>
<option value="Computer science">Computer science</option>
<option value="Information Technolgy">Information Technolgy</option>
<option value="Electronic Engineering">Electronic Engineering</option>
<option value="Electrical Engineering">Electrical Engineering</option>
</select>
そして今、jsファイルに関数を追加します
function subjects(str){
console.log(`selected option is ${str}`);
}
PHPファイルで選択したオプションを確認したい場合
タグにname属性を指定して、phpファイルのグローバル変数/ array($ _GETまたは$ _POST)にアクセスするだけです。htmlファイルが次のようなものである場合は、例を参照してください
<form action="validation.php" method="POST">
Subject:<br>
<select name="subject">
<option>Select subject</option>
<option value="Computer science">Computer science</option>
<option value="Information Technolgy">Information Technolgy</option>
<option value="Electronic Engineering">Electronic Engineering</option>
<option value="Electrical Engineering">Electrical Engineering</option>
</select><br>
</form>
そして、あなたのphpファイルvalidation.phpでは、このようにアクセスできます
$subject = $_POST['subject'];
echo "selected option is $subject";
this.selected
あなたはjQueryのを(使用してバイパスすること)$(this).prop("selected")
)が、彼らは意志あなたのための仕事の両方。