පහත වැටීමෙන් තෝරාගත් විකල්පයක් ලබා ගන්න


1145

සාමාන්‍යයෙන් මම $("#id").val()තෝරාගත් විකල්පයේ වටිනාකම නැවත ලබා දීමට භාවිතා කරමි , නමුත් මෙවර එය ක්‍රියාත්මක නොවේ. තෝරාගත් ටැගයෙහි හැඳුනුම්පත ඇතaioConceptName

html කේතය

<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
    <option>choose io</option>
    <option>roma</option>
    <option>totti</option>
</select>

2
ඔබට මූලද්රව්යයේ සලකුණු පෙන්විය හැකිද#aioConceptName
ජෝර්ජ්

2
එය අමුතු දෙයක් නිසා මෙම උදාහරණය මත ක්‍රියා කරන විට jsfiddle.net/pAtVP , එය ඔබගේ ඊර්ෂ්‍යාව තුළ වෙඩි තබන බව ඔබට විශ්වාසද?
ජෝර්ජ්

5
හැකි විය හැකි jQuery
කෙනී ලින්ස්කි

11
ප්‍රමාද සිතුවිල්ලක්, නමුත් .val () ඔබ එම valueගුණාංග මත ගුණාංගය සකසන්නේ නැත්නම් ක්‍රියා නොකරනු ඇත <option>, නේද?
ජේකබ් වැලන්ටා

8
JQuery හි මෑත සංස්කරණ (1.9.1 සමඟ පරීක්ෂා කර ඇත) මෙම සලකුණු කිරීම සමඟ කිසිදු ගැටළුවක් නොමැත. ඉහත උදාහරණය සඳහා, $("#aioConceptName").val()ප්‍රතිලාභ choose io.
සල්මාන් ඒ

Answers:


1875

පතන විකල්ප සඳහා ඔබට බොහෝ විට මෙවැනි දෙයක් අවශ්‍ය වේ:

var conceptName = $('#aioConceptName').find(":selected").text();

val()උපක්‍රමය නොකිරීමට හේතුව, විකල්පයක් ක්ලික් කිරීමෙන් ඩ්‍රොප් ඩවුන් හි වටිනාකම වෙනස් නොවන බැවිනි - එය :selectedතෝරාගත් විකල්පයට දේපල එකතු කරන අතර එය ඩ්‍රොප් ඩවුන් හි දරුවෙකි .


41
අහ්, හරි, ඔබ ඔබේ ප්‍රශ්නය HTML සමඟ යාවත්කාලීන කර ඇත. මෙම පිළිතුර දැන් අදාල නොවේ. ඇත්ත වශයෙන්ම, .val()ඔබේ නඩුවේ වැඩ කළ යුතුය - ඔබට වෙනත් තැනක දෝෂයක් තිබිය යුතුය.
එලියට් බොන්නිවිල්

13
සඳහා val()ඇයි භාවිතා නොකළ var conceptVal = $("#aioConceptName option").filter(":selected").val();?
පරීක්ෂක

64
සරල දෙයක් ගැන var conceptVal = $("#aioConceptName option:selected").val()කුමක් කිව හැකිද?
ක්ලෙමන් ටුවාර්

5
මා මීට පෙර ඩ්‍රොප් ඩවුන් ලබාගත් ස්ථානයක තෝරාගත් විකල්පය සොයා ගැනීමට මෙය තවමත් ප්‍රයෝජනවත් බව මට පෙනී ගියේය - උදා: var mySelect = $('#mySelect'); / * ... තවත් කේතයක් සිදු වේ ... * / var selectedText = mySelect.find(':selected').text();
චාල්ස් වුඩ්

18
ඇත්ත වශයෙන්ම හේතුව .val () ඔහු වෙනුවෙන් වැඩ නොකිරීමට හේතුව ඔහු සැබවින්ම ඔහුගේ විකල්පයන්ට වටිනාකමක් ලබා නොදුන් නිසාය, ඒ නිසා තෝරාගත් පෙළ ලබා ගැනීමට ඔහු ඔබේ ක්‍රමය භාවිතා කළ යුතුය, එබැවින් තවත් විසඳුමක් වෙනස් වනු ඇත <option> io </option> යන්න <option value = 'io තෝරන්න'> io </option> ඔබේ විසඳුම ඉක්මන් හා වඩා ප්‍රායෝගික වුවත්, මම සිතුවේ මෙය කෙසේ හෝ ප්‍රකාශ කළ හැකි බැවින් ඔහුට වඩා හොඳ අවබෝධයක් ඇති බවය ඇයි එය ඔහුට වැඩ නොකරන්නේ?
ජෝර්දාන් ලැප්‍රයිස්

346

එක් එක් විකල්ප සඳහා අගයන් සකසන්න

<select id="aioConceptName">
    <option value="0">choose io</option>
    <option value="1">roma</option>
    <option value="2">totti</option>
</select>

$('#aioConceptName').val()ගුණාංගය .val()ආපසු ලබා දෙන නිසා වැඩ කළේ නැත value. එය නිසියාකාරව ක්‍රියාත්මක වීමට නම්, valueඑක් එක් ගුණාංග ආරෝපණය කළ යුතුය <option>.

අන් අය විසින් යෝජනා කරනු ලබන $('#aioConceptName').val()මේ :selectedවොඩූ වෙනුවට දැන් ඔබට ඇමතිය හැකිය .


12
Caveat: විකල්පයක් තෝරාගෙන නොමැති නම්, $('#aioConceptName').val()ශුන්‍ය / "නිර්වචනය නොකළ" ආපසු ලබා දෙන්න
ගෝර්ඩන්

මෙය මට සහතික විය $ ('# myselect'). Val () නිවැරදි බව තෝරාගත් හැඳුනුම්පතක් ලබා දීමට මට ගොළු ලෙස අමතක විය!
zzapper

4
මගේ තෝරාගත් විකල්පයන්ගෙන් එකක් විශේෂ promptවිකල්පයකි <option>Please select an option</option>. මගේ නඩුවේ හිස් වටිනාකමක් එකතු කිරීම ගැටළුවක් නොවූ <option value="">Please...</option>නමුත් සමහර අවස්ථාවල අගය ගුණාංගයක් නොතිබීම අර්ථවත් යැයි මම විශ්වාස කරමි. නමුත් +1 නිසා ඔබේ වොඩූ වචන මට සිනහවක් ඇති කළේය.
සිරිල් ඩුචොන්-ඩොරිස්

නැත val()ද තෝරා valueවෙනුවට තුල පෙළ option? එනම් එය 1වෙනුවට තෝරා ගනී roma.
ඩෙත්ලොක්

4
at ඩෙත්ලොක් එයයි .val(). ඔබ පෙළ හැසිරවීමට / භාවිතා කිරීමට බලාපොරොත්තු වන්නේ නම් $(":selected).text(), අගය සහ පෙළ එකම ලෙස භාවිතා කරන්න හෝ සකසන්න.
ජේකබ් වැලන්ටා

166

මම මෙම ප්‍රශ්නයට පැකිලී එලියට් බොන්නිවිල්ගේ පිළිතුරේ වඩාත් සංක්ෂිප්ත අනුවාදයක් වර්ධනය කළෙමි:

var conceptName = $('#aioConceptName :selected').text();

හෝ සාමාන්‍යයෙන්:

$('#id :pseudoclass')

මෙය ඔබට අමතර jQuery ඇමතුමක් ඉතිරි කරයි, සෑම දෙයක්ම එක පහරකින් තෝරා ගනී, සහ වඩාත් පැහැදිලිය (මගේ මතය).


1
O ජෝන්කොන්ඩ් මෙටා පිළිබඳ පිළිගත් පිළිතුර ඔබ සමඟ එකඟ නොවේ: meta.stackexchange.com/questions/87678/… . මගේ මතය අනුව, එඩ් හොඳ පිළිතුරක් ලබා දී ඇති අතර අමතර සඳහනක් ලබා දී ඇත.
බ ru ස්

ඔවුන්ට එයට ඉඩ දිය හැකි නමුත් එය තවමත් නරක සම්පතක්
ජෝන් කොන්ඩේ

1
W3 පාසල් සම්බන්ධතාවය ඉවත් කර ඇති අතර, එය තදින්ම අවශ්‍ය නොවූ අතර "jQuery pseduo පන්ති" සඳහා ගූගල් සෙවුමක් බොහෝ තොරතුරු සපයයි.
එඩ් ඕර්සි

DEdOrsi: එය අතිරේක jQuery ඇමතුමක් සුරකින අතර, එය ස්වදේශීය DOM querySelectorAll()ක්‍රමය මඟින් සපයන කාර්ය සාධන තල්ලුවෙන් ප්‍රයෝජන ගැනීමෙන් වළක්වයි ( jQuery ලියකියවිලි බලන්න ). එබැවින් එය එලියට්ගේ විසඳුමට වඩා මන්දගාමී විය යුතුය .
ඇලෙක්සැන්ඩර් අබකුමොව්

මම බොහෝ විට භාවිතා කිරීමට කැමති .find(':selected')නම් එය ඔබට සිදුවීමකට සම්බන්ධ කර ඇති ඇමතුමකින් එය ඇමතීමට ඉඩ දෙයි ... වැනි$('#aioConceptname').bind('change', function(el) { console.log ( $(el).find(':selected').text() ); });
ආම්ස්ට්‍රෝංගස්ට්

61

වටිනාකම සඳහා මෙය උත්සාහ කරන්න ...

$("select#id_of_select_element option").filter(":selected").val();

හෝ මෙය පෙළ සඳහා ...

$("select#id_of_select_element option").filter(":selected").text();

51

ඔබ සිදුවීම් සන්දර්භය තුළ නම්, jQuery හි, ඔබට තෝරාගත් විකල්ප අංගය ලබා ගත හැකිය:
$(this).find('option:selected')මේ වගේ:

$('dropdown_selector').change(function() {
    //Use $option (with the "$") to see that the variable is a jQuery object
    var $option = $(this).find('option:selected');
    //Added with the EDIT
    var value = $option.val();//to get content of "value" attrib
    var text = $option.text();//to get <option>Text</option> content
});

සංස්කරණය කරන්න

PossessWithin සඳහන් කළ පරිදි , මගේ පිළිතුර ප්‍රශ්නයට පිළිතුරු සපයයි: තෝරාගත් "විකල්පය" තෝරා ගන්නේ කෙසේද.

ඊළඟට, විකල්ප අගය ලබා ගැනීමට, භාවිතා කරන්න option.val().


2
දෝෂ රහිතයි! $(this).find('option:selected').val()විකල්ප මූලද්‍රව්‍යයේ අගය $(this).find('option:selected').text()ලබා ගැනීමට හෝ පෙළ ලබා ගැනීමට ඔබ අවසානයේ එකතු කළ යුතු බව අමතක නොකරන්න . :)
ඩියාගෝ කොටුව



16

තේරීමක වටිනාකම (පෙළ නොවේ) කියවීම:

var status = $("#Status").val();
var status = $("#Status")[0].value;
var status = $('#Status option:selected').val();

තේරීමක් අක්‍රිය කරන්නේ කෙසේද? ප්‍රභේද දෙකෙහිම, අගය භාවිතා කර වෙනස් කළ හැකිය:

පතන සමඟ පරිශීලකයාට අන්තර්ක්‍රියා කළ නොහැක. වෙනත් විකල්ප තිබිය හැකිදැයි ඔහු නොදනී.

$('#Status').prop('disabled', true);

බී

ඩ්‍රොප් ඩවුන් හි ඇති විකල්පයන් පරිශීලකයාට දැකිය හැකි නමුත් ඒවා සියල්ලම අක්‍රීය කර ඇත:

$('#Status option').attr('disabled', true);

මෙම අවස්ථාවේ දී, $("#Status").val() වැඩ කරන්නේ jQuery අනුවාද සඳහා පමණි1.9.0 . අනෙක් සියලුම ප්‍රභේද ක්‍රියා කරනු ඇත.

ආබාධිත තේරීමක් යාවත්කාලීන කරන්නේ කෙසේද?

පිටුපස ඇති කේතයෙන් ඔබට තේරීමේදී වටිනාකම යාවත්කාලීන කළ හැකිය. එය අක්‍රිය කර ඇත්තේ පරිශීලකයින් සඳහා පමණි:

$("#Status").val(2);

සමහර අවස්ථාවල ඔබට සිදුවීම් වෙඩි තැබීමට අවශ්‍ය විය හැකිය:

$("#Status").val(2).change();

12
<select id="form-s" multiple="multiple">
    <option selected>city1</option>
    <option selected value="c2">city2</option>
    <option value="c3">city3</option>
</select>   
<select id="aioConceptName">
    <option value="s1" selected >choose io</option>
    <option value="s2">roma </option>
    <option value="s3">totti</option>
</select>
<select id="test">
    <option value="s4">paloma</option>
    <option value="s5" selected >foo</option>
    <option value="s6">bar</option>
</select>
<script>
$('select').change(function() {
    var a=$(':selected').text(); // "city1city2choose iofoo"
    var b=$(':selected').val();  // "city1" - selects just first query !
    //but..
    var c=$(':selected').map(function(){ // ["city1","city2","choose io","foo"]
        return $(this).text();
    }); 
    var d=$(':selected').map(function(){ // ["city1","c2","s1","s5"]
        return $(this).val();
    });
    console.log(a,b,c,d);
});
</script>

:) හොඳ දෙය නම් :selected.. තෝරාගත් විකල්පයන් මත වැල් () හෝ පෙළ () නිවැරදිව ක්‍රියා නොකරයි, සමහර අරා එයින් map()කළ හැකි ආකාරයට නිපදවා ඇත්නම් පමණි .
ඕල් සෙන්

11

ඔබ මෙම වාක්‍ය ඛණ්ඩය භාවිතා කළ යුතුය:

var value = $('#Id :selected').val();

එබැවින් මෙම කේතය උත්සාහ කරන්න:

var values = $('#aioConceptName :selected').val();

ඔබට ෆිදෙල් හි පරීක්ෂා කළ හැකිය: http://jsfiddle.net/PJT6r/9/

මෙම ලිපියෙන් මෙම පිළිතුර බලන්න


9

JQuery භාවිතා කරමින්, a එකතු කරන්න change සිදුවීමක් තෝරාගත් අගය හෝ පෙළ එම හසුරුව තුළ ලබා ගන්න.

ඔබට තෝරාගත් පෙළ අවශ්‍ය නම් කරුණාකර මෙම කේතය භාවිතා කරන්න:

$("#aioConceptName").change(function () {
    alert($("#aioConceptName :selected").text())
});

හෝ ඔබට තෝරාගත් අගයක් අවශ්‍ය නම්, කරුණාකර මෙම කේතය භාවිතා කරන්න:

$("#aioConceptName").change(function () {
    alert($("#aioConceptName :selected").attr('value'))
});

9

jQuery.val()තෝරාගත් අංග සඳහා ශ්‍රිතය භාවිතා කරන්න :

.Val () ක්‍රමය මූලික වශයෙන් භාවිතා කරනුයේ ආදාන, තේරීම සහ ටෙක්ස්ටාරියා වැනි ආකෘති මූලද්‍රව්‍යවල අගයන් ලබා ගැනීම සඳහා ය. තෝරාගත් මූලද්‍රව්‍ය සම්බන්ධයෙන් ගත් කල, nullවිකල්පයක් තෝරා නොගත් විට එය නැවත පැමිණෙන අතර අවම වශයෙන් එකක්වත් ඇති විට තෝරාගත් එක් එක් විකල්පයේ අගය අඩංගු අරාවක් ඇති අතර multipleගුණාංගය පවතින බැවින් තවත් තෝරා ගැනීමට හැකිය .

$(function() {
  $("#aioConceptName").on("change", function() {
    $("#debug").text($("#aioConceptName").val());
  }).trigger("change");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<select id="aioConceptName">
  <option>choose io</option>
  <option>roma</option>
  <option>totti</option>
</select>
<div id="debug"></div>


8

හොඳම පිළිතුර සොයාගත් ඕනෑම කෙනෙකුට එය සාර්ථක නොවේ.

භාවිතා කිරීමට උත්සාහ කරන්න:

  $( "#aioConceptName option:selected" ).attr("value");

මෑත කාලීන ව්‍යාපෘති වල මා වෙනුවෙන් වැඩ කරන බැවින් ඒ පිළිබඳව සොයා බැලීම වටී.


7

මෙය ක්‍රියාත්මක විය යුතුය:

var conceptName = $('#aioConceptName').val();

6

කෙලින්ම ඉදිරියට හා පහසුය:

ඔබේ පහත වැටීම

<select id="aioConceptName">
    <option>choose io</option>
    <option>roma</option>
    <option>totti</option>
</select>

තෝරාගත් අගය ලබා ගැනීම සඳහා Jquery කේතය

$('#aioConceptName').change(function() {
    var $option = $(this).find('option:selected');

    //Added with the EDIT
    var value = $option.val(); //returns the value of the selected option.
    var text = $option.text(); //returns the text of the selected option.
});

5

තෝරාගත් ටැගයේ වටිනාකම ලබා ගැනීම සඳහා:

 $('#id_Of_Parent_Selected_Tag').find(":selected").val();

ඔබට පෙළ ලබා ගැනීමට අවශ්‍ය නම් මෙම කේතය භාවිතා කරන්න:

 $('#id_Of_Parent_Selected_Tag').find(":selected").text();

උදාහරණයක් වශයෙන්:

<div id="i_am_parent_of_select_tag">
<select>
        <option value="1">CR7</option>
        <option value="2">MESSI</option>
</select>
</div>


<script>
 $('#i_am_parent_of_select_tag').find(":selected").val();//OUTPUT:1 OR 2
 $('#i_am_parent_of_select_tag').find(":selected").text();//OUTPUT:CR7 OR MESSI
</script>

4

ඔබට එය මේ ආකාරයෙන් නිදොස් කිරීමට උත්සාහ කළ හැකිය:

console.log($('#aioConceptName option:selected').val())

2

පෙළ නෝඩය වෙනුවට 'අගය' ගුණාංගය ලබා ගැනීමට ඔබට අවශ්‍ය නම්, මෙය ඔබ වෙනුවෙන් වැඩ කරනු ඇත:

var conceptName = $('#aioConceptName').find(":selected").attr('value');

මෙය අර්ධ වශයෙන් විසඳුමක් පමණි - එක් එක් විකල්පය සඳහා අගය නියම කිරීම ද අවශ්‍ය වේ - මෙය දැනටමත් ජේකොබ් වැලෙටාගේ පිළිතුරෙන් ආවරණය වී ඇත
ඩේවිඩ්

2

මේකට උත්සාහ කරන්න

$(document).ready(function() {

    $("#name option").filter(function() {
        return $(this).val() == $("#firstname").val();
    }).attr('selected', true);

    $("#name").live("change", function() {

        $("#firstname").val($(this).find("option:selected").attr("value"));
    });
});


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<select id="name" name="name"> 
<option value="">Please select...</option> 
<option value="Elvis">Elvis</option> 
<option value="Frank">Frank</option> 
<option value="Jim">Jim</option> 
</select>

<input type="text" id="firstname" name="firstname" value="Elvis" readonly="readonly">

2
$('nameofDropDownList').prop('selectedIndex', whateverNumberasInt);

ඩීඩීඑල් දර්ශක සහිත අරාවක් ලෙස සිතන්න, ඔබ එක් දර්ශකයක් තෝරා ගනී. ඔබේ JS සමඟ එය සැකසීමට අවශ්‍ය එකක් තෝරන්න.


2

මෙය වඩා හොඳින් තේරුම් ගැනීමට සහ පහත උත්සාහ කිරීමට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි,

$('select[id="aioConceptName[]"] option:selected').each(function(key,value){
   options2[$(this).val()] = $(this).text();
   console.log(JSON.stringify(options2));
});

වැඩි විස්තර සඳහා කරුණාකර http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/



1

ඔබට මෙය කළ හැකි එකම පන්තියේ = නමක් සහිත තේරීමක් ලබා ගැනීමට, තෝරාගත් විකල්පයක් තෝරාගෙන තිබේදැයි පරීක්ෂා කිරීමට.

var bOK = true;
$('.optKategorien').each(function(index,el){
    if($(el).find(":selected").text() == "") {
        bOK = false;
    }
});

1

මම එකම ප්රශ්නය, එය මගේ නඩුව මත වැඩ නැහැ ඇයි මම හදුනාගත්තා
මෙම html පිටුවේ වෙනස් html කොටස් වලට කඩා බෙදා මම මම එකම අංකය කරගෙන යන බව වෙනත් ආදාන ක්ෂේත්රය ඇති බව සොයා selectයන නිසා වන val()සෑම විටම හිස් බවක්
සමාන ගැටලුවක් ඇති ඕනෑම කෙනෙකුට මෙය දවස ඉතිරි කර දෙනු ඇතැයි මම බලාපොරොත්තු වෙමි.


ඇත්ත වශයෙන්ම, මෙය මගේ ගැටලුවට මා අවදි කළේය. මමම දත්ත ඉලක්කයේ qty-field සහ .. හැඳුනුම්පතේම qty_field භාවිතා කළෙමි. සෑම විටම මූලික කරුණු දෙවරක් හෝ වැඩි ගණනක් පරීක්ෂා කරන්න.
cdsaenz

1

use ("# id") භාවිතා කිරීමට. val, ඔබ මෙවැනි විකල්පයට අගයක් එක් කළ යුතුය:

<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
    <option value="choose">choose io</option>
</select>

වෙනත්, ඔබට භාවිතා කළ හැකිය

   $("#aioConceptName").find(':selected').text();

මම හිතනවා ඒක උදව් කරයි කියලා ..


1

මෙන්න මෙම ගැටළුව සඳහා සරල විසඳුම.

$("select#aioConceptName").change(function () {
           var selectedaioConceptName = $('#aioConceptName').find(":selected").val();;
           console.log(selectedaioConceptName);
        });

1
var selectedaioConceptName = $('#aioConceptName option:selected').val();වෙනත් සොයා ගැනීමක් භාවිතා කිරීමට වඩා හොඳයි ()
සාඩී

1

උත්සාහ කරන්න

aioConceptName.selectedOptions[0].value


0

බොහෝ විට මේ ආකාරයේ ඔබේ හොඳම ඔට්ටුව නම් දැනට තෝරාගෙන ඇති අගය සොයා ගැනීම සඳහා jQuery හි වෙනස් කිරීමේ ක්‍රමය භාවිතා කිරීමයි:

$('#aioConceptName').change(function(){

   //get the selected val using jQuery's 'this' method and assign to a var
   var selectedVal = $(this).val();

   //perform the rest of your operations using aforementioned var

});

මම මෙම ක්‍රමයට වැඩි කැමැත්තක් දක්වන්නේ ඔබට තෝරාගත් ක්ෂේත්‍රයක් තුළ තෝරාගත් සෑම විකල්පයක් සඳහාම කාර්යයන් කළ හැකි බැවිනි.

උපකාරවත් වන බලාපොරොත්තුව!


0

සාමාන්‍යයෙන් ඔබට අවශ්‍ය වන්නේ තෝරාගත් අගය ලබා ගැනීම පමණක් නොව, යම් ක්‍රියාමාර්ගයක් ද ක්‍රියාත්මක කිරීමයි. එසේ නම්, සියලු jQuery මැජික් වලින් වැළකී තෝරාගත් අගය ක්‍රියාකාරී ඇමතුමට තර්කයක් ලෙස යොමු නොකරන්නේ ඇයි?

<select onchange="your_action(this.value)">
   <option value='*'>All</option>
   <option ... />
</select>

0

නිශ්චිත තෝරාගත් විකල්පයක් භාවිතා කර ඔබට තෝරා ගත හැකිය: පහත දැක්වෙන්නේ අභ්‍යන්තර ටෙක්ස්ට් ය

$("select#aioConceptName > option:selected").text()

පහත දැක්වෙන අතර ඔබට වටිනාකමක් ලබා දෙනු ඇත.

$("select#aioConceptName > option:selected").val()
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.