2012-04-18 4 views
1

に新しいものを追加します選択された属性とそれは動作しますが、ユーザーが再びインデックスを変更した後、さらに別の選択された属性を設定します私はそれを望んでいません。削除選択した属性とは、私は以下の持っているselect要素

<select class="dropDownList" id="PersonFunction"> 
    <option value="">Choose</option> 
    <option value="1" selected="selected">Vice President</option> 
    <option value="2" selected="selected">Director</option> 
    <option value="3">Secretary</option> 
    <option value="4">Clerk</option> 
</select> 

選択した属性が存在する場合は、最初に削除できますか?ここ

JsFiddle:http://jsfiddle.net/mgrcic/HCrS2/

答えて

8
$('#PersonFunction').on('change', function() { 
    $('option:selected', this).attr('selected',true).siblings().removeAttr('selected'); 
}); 

DEMO

+0

すべてを選択しても機能しません。 –

+0

@plurbyそれは動作します – thecodeparadox

+0

今それは動作します。ありがとうございました。 –

4

ブラウザが自動的に選択された要素を知っているだろうと、プログラムselected属性を更新する必要はありません。 selected属性は、ページの読み込み時にデフォルトオプションを設定するためのものです。

現在選択されたオプションを取得するには、単に次のようにします。

var selectedValue = $("#PersonFunction option:selected").val(); 

Example Fiddle


更新

あなたはselected属性を設定したいん何らかの理由場合(フォームとして私はあなたが動的に別のフォームを作成していることを理解することができます)、これを試してください:

$("#PersonFunction").change(function() { 
    $("option", $(this)).removeAttr("selected"); 
    $("option:selected", $(this)).attr("selected", true); 
});​ 
+0

ため提出をユーザーがクリックした後、私はdiv要素(すべての私のフィールドを格納する場合)(.valする)(.textのを変更私は動的に作成され、私は選択された属性を持っていないので、投稿は機能しません。私は価値を得る方法を知っていて、それを求めなかった。 –

+0

[OK]を私の更新を参照してください - 私はまだそれを必要とするために使用しているロジックを完全に理解していません。 –

+1

動的フォームの作成と投稿を含むコード全体を別の質問に投稿したい場合は、これが必要なものを達成するための最良の方法だとは思わないかもしれません。それ以上の詳細がなければ、言い表すのは難しいです。 –

-1

これは選択したテキストを警告します。あなたはそれがオプション値をピックアップする代わりに

$("#PersonFunction").change(function() { 
    var selected = $("option:selected").text(); 
    alert(selected); 
}); 
関連する問題