কোনও বিকল্প নির্বাচন করা হয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


146
$('#mySelectBox option').each(function() {
    if ($(this).isChecked())
       alert('this option is selected');
     else
       alert('this is not');
});

স্পষ্টতই, isCheckedকাজ করে না। সুতরাং আমার প্রশ্ন এটি করার সঠিক উপায় কী? ধন্যবাদ।


2
00zebra00, নীচের অনেকগুলি বিকল্পের মধ্যে উত্তর খুঁজে পাওয়ার জন্য ধন্যবাদ thanks তবে, নির্বাচিত সম্পত্তি অ্যাক্সেসের 'সেরা' উপায় সম্পর্কে নীচের মন্তব্যে কথোপকথনের বিষয়টি নিশ্চিত করে নিশ্চিত হন। সাধারণ সারকথা যে আপনি যখন জাভাস্ক্রিপ্ট সরাসরি একটি উপাদান অ্যাক্সেস করতে পারেন (ব্যবহার করছে this.selectedআপনি jQuery ব্যবহার বাইপাস (উচিত) $(this).prop("selected")) কিন্তু তারা হবে তোমার জন্য উভয় হবে।
veeTrain

উত্তর:


263

হালনাগাদ

নির্বাচিত বিকল্পটিতে আরও একটি সরাসরি জিকুয়ের পদ্ধতি হ'ল:

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/

পরবর্তী সময় সদৃশ এসও প্রশ্নের সন্ধান করুন:

বর্তমান নির্বাচিত বিকল্পটি পান বা সেট নির্বাচিত বিকল্পটি বা কিভাবে $ jQuery মধ্যে (এই) নির্বাচিত বিকল্প পেতে? বা বিকল্প [নির্বাচিত = সত্য] কাজ করে না


এটি কোনও উপযুক্ত কারণে jQuery ব্যবহার করে। নেটিভ js DOM বৈশিষ্ট্য ব্যবহার করুন। উপর কটাক্ষপাত এই
gdoron মনিকা সমর্থন করছে

3
দেখে মনে হচ্ছে আপনি আমার উত্তরটি পড়েন নি। this.selectedপরিবর্তে $(this).is(":selected")আমার অনুমান করা যায় যে এর জন্য কোনও জাস্পারফের দরকার নেই, তাই না? JQuery ব্যবহার করার বিরুদ্ধে আমার কিছু নেই !, যখন আপনার প্রয়োজন হবে তখন এটি ব্যবহার করুন, যখন এটি ওভারহেড এবং আরও কোড ছাড়া কিছুই দেয় না not
gdoron মনিকা

@gdoron this.selectedসম্পূর্ণরূপে বৈধ তবে তিনি এটি করার জন্য সঠিক jQuery উপায় চেয়েছিলেন।
iambriansreed

2
@gdoron আমি সম্পূর্ণরূপে আপনার সাথে একমত সম্ভবত আমাদের মধ্যে যারা jQuery নিয়ে এসেছিলেন তাদের প্রতিকারমূলক জাভাস্ক্রিপ্ট ক্লাস নেওয়া দরকার। :)
iambriansreed

2
@ জিএমরন না, আমার প্রশ্নটি নীচে ভোট হয়েছে এবং ভোট দেওয়া হয়েছে। ভাল গোয়েন্দা কাজ যদিও।
iambriansreed

26

আপনি এইভাবে নির্বাচিত বিকল্পটি পেতে পারেন:

$('#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 বৈশিষ্ট্য এবং ফাংশন জেনে মধ্যে jQuery ট্যাগটি তথ্য


1
@ ডাউনভোটার, মন্তব্য করবেন? ছায়া খুঁজে এবং যুদ্ধ! :)
gdoron মনিকা

কারণ আপনি প্রশ্নের উত্তর না দিয়ে তবে সেরা অনুশীলন দিয়েছেন Maybe ;)
ইম্ব্রিয়ানস্রিড

1
@iambriansreed। হা ?! আমি প্রশ্নের উত্তর দিলাম না? প্রশ্নে কোন অংশটি উত্তরহীন রয়ে গেল?
gdoron মনিকা

2
আকর্ষণীয় আলোচনা এখানে। :) সমস্ত ডিভি কেন কেন নিশ্চিত তা নয় তবে আমি যারা ব্যবহার করেছি তাদের সবাইকে ইউভি করেছি this.selected। আমি jQuery অতিরিক্ত ব্যবহার / অপব্যবহার সম্পর্কে আপনার মন্তব্যে একমত। JQuery জানার অংশ, কখন এটি ব্যবহার করবেন না তা জানা। এটি বলেছিল, মনে রাখবেন যে ':selected'নির্বাচকটি একটি কাস্টম সিজল নির্বাচনকারী, তাই এটি ব্যবহার করে querySelectorAllসমর্থিত ব্রাউজারগুলিতে ব্যবহারকে অক্ষম করে । এটি অবশ্যই বিশ্বের শেষ নয়, যেহেতু এটি কিছু দুর্দান্ত, সংক্ষিপ্ত কোড সরবরাহ করে তবে আমি ব্যক্তিগতভাবে সিজল-কেবল স্টাফ এড়ানো প্রবণতা করি।

@ জিডোরন আপনি মেটাতে এই প্রশ্নটি দেখানোর সাথে সাথে আমি আগ্রহী হয়ে উঠছি। ডিভি সম্পর্কিত, এই নোডটি আপনার পক্ষে কার্যকর হতে পারে।
ভিজিওন

4

আপনি যদি পরিচিত বা আরামদায়ক না হন তবে আপনি is()কেবল এর মানটি পরীক্ষা করতে পারেন prop("selected")

যেমনটি এখানে দেখা গেছে :

$('#mySelectBox option').each(function() {
    if ($(this).prop("selected") == true) {
       // do something
    } else {
       // do something
    }
});​

সম্পাদনা করুন :

@ জিডোরন মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, কোনও বিকল্পের নির্বাচিত সম্পত্তি অ্যাক্সেস করার দ্রুত এবং সর্বাধিক উপযুক্ত উপায়টি ডিওএম নির্বাচকের মাধ্যমে। এই ক্রিয়াটি প্রদর্শন করা ফিডল আপডেট এখানে ।

if (this.selected == true) {

কাজ ঠিক একইভাবে প্রদর্শিত হবে! ধন্যবাদ জিডোরন


আপনি দয়া করে আমাকে ব্যাখ্যা করতে পারেন কেন তার $(this).prop("selected")পরিবর্তে তাকে ব্যবহার করা উচিত this.selected!? এটা কি দেয় ??! পিএস আমি
ডাউনভাইটার

@ জিডোরন, আমি যে প্রধান সুবিধাটি ভেবেছিলাম তা হ'ল পরিচিতি। আমি নিশ্চিত না কিসের isজন্য সবচেয়ে বেশি ব্যবহৃত হয় তবে আমি প্রোপ এবং অ্যাটর দ্বারা আমার সম্পত্তিগুলি অ্যাক্সেস করতে পছন্দ করি। বেশিরভাগ পরিস্থিতিতে এটি স্বাদের বিষয় হতে পারে। হ্যাঁ, ডাউন-ভোটিংয়ের একটি কৌতূহলপূর্ণ ফুসকুড়ি রয়েছে!
veeTrain

2
আমি পড়তে সুপারিশ আপনার DOM বৈশিষ্ট্য এবং ফাংশন জেনে অংশ jQuery ট্যাগ তথ্য । সাধারণ কাজ করার জন্য ধীর কোড + আরও কোড ব্যবহার করার কোনও কারণ নেই। .is()জটিল নির্বাচকের জন্য যেমন $(...).is('.foo > [name="aaa"] input') or for properties that are not native DOM elements properties like $ (...) হ'ল (": দৃশ্যমান") ব্যবহার করা উচিত।
gdoron মনিকা

@gdoron; যে নির্দেশ করার জন্য অনেক ধন্যবাদ। আমি আমার উত্তর অনুসারে আপডেট করেছি।
veeTrain

সমস্যা নেই. আপনি যদি আমার উত্তরটি উত্তীর্ণ করতে পারেন তবে যদি আপনি এটির চেয়ে ভাল মনে করেন তবে অন্যরা। (আমি সঙ্গে উত্তর না চান $(this).is(':selected')গ্রহণযোগ্য হওয়ার Stackoverflow সর্বোত্তম কার্যাভ্যাস, না সাধারণ ভুল শিখতে ব্যবহার করা উচিত ...।)
gdoron মনিকা সমর্থন করছে

3

আপনি 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>


2

ব্যবহার

 $("#mySelectBox option:selected");

এটির একটি বিশেষ বিকল্প কিনা তা পরীক্ষা করতে myoption:

 if($("#mySelectBox option:selected").text() == myoption){
          //...
 }

আপনাকে ডাউনভোট করেনি (এখানে একটি সিরিয়াল ডাউনভোটস আছে!) তবে কি myoption???
gdoron মনিকা

1
কেবল একটি স্ট্রিং যা উদাহরণস্বরূপ বলে মনে করা হয় যে ওপি যদি এটি নির্বাচিত হয় তা পরীক্ষা করতে চায়
মওনা শিখনা

ডাউনভোট সম্পর্কিত, আপনি আমার উত্তরটির নীচে মন্তব্যগুলি পড়তে চাইতে পারেন ।
gdoron মনিকা

2

এটিকে আপনার নির্বাচিত তালিকা হিসাবে বিবেচনা করুন:

<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!');
    }

}

0

আমার ক্ষেত্রে আমি জানি না কেন নির্বাচিত সর্বদা সত্য। সুতরাং আমি ভাবতে সক্ষম হওয়ার একমাত্র উপায় হ'ল:

var optionSelected = false;
$( '#select_element option' ).each( function( i, el ) {
    var optionHTMLStr = el.outerHTML;

    if ( optionHTMLStr.indexOf( 'selected' ) > 0 ) {
        optionSelected = true;
        return false;
    }
});

0

আপনি যদি কেবল কোনও বিকল্প নির্বাচন করা হয়েছে কিনা তা পরীক্ষা করতে চান তবে আপনাকে সমস্ত বিকল্পের মাধ্যমে পুনরাবৃত্তি করতে হবে না। শুধু কর

if($('#mySelectBox').val()){
    // do something
} else {
    // do something else
}

দ্রষ্টব্য: আপনার যদি মান = 0 সহ একটি বিকল্প থাকে যা আপনি বাছাইযোগ্য হতে চান তবে আপনার যদি শর্তটি পরিবর্তন করতে হয় $('#mySelectBox').val() != null


0

আপনার যদি নির্দিষ্ট মানটির জন্য বিকল্পের নির্বাচিত রাজ্যটি পরীক্ষা করতে হয় :

$('#selectorId option[value=YOUR_VALUE]:selected')

0

আপনি যদি জাভাস্ক্রিপ্টের মাধ্যমে নির্বাচিত বিকল্পটি চেক করতে চান

সর্বাধিক সহজ পদ্ধতিটি সেই ট্যাগটিতে অন্বেষণ বৈশিষ্ট্য যুক্ত করা এবং জেএস ফাইলের মধ্যে একটি ফাংশন সংজ্ঞায়িত করা হয় উদাহরণটি দেখুন আপনার এইচটিএমএল ফাইলটিতে এর মতো কিছু রয়েছে কিনা তা দেখুন see

 <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>

এবং এখন জেএস ফাইল এ ফাংশন যোগ করুন

function subjects(str){
    console.log(`selected option is ${str}`);
}

আপনি যদি পিএইচপি ফাইলে নির্বাচিত বিকল্পটি পরীক্ষা করতে চান

আপনার ট্যাগটিতে কেবল নাম বৈশিষ্ট্য দিন এবং এটি পিএইচপি ফাইলের গ্লোবাল ভেরিয়েবল / অ্যারে অ্যাক্সেস করুন ($ _GET বা $ _POST) যদি আপনার এইচটিএমএল ফাইলটি এর মতো কিছু হয় তবে উদাহরণটি দেখুন

<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>

এবং আপনার পিএইচপি ফাইলের বৈধতা। পিএইচপিতে আপনি এর মতো অ্যাক্সেস করতে পারেন

$subject = $_POST['subject'];
echo "selected option is $subject";
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.