JQuery এ কোনও <সিলেক্ট> নির্বাচন না করার সেরা উপায়?


219
<select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>

মার্জিতভাবে বিকল্পটি অনির্বাচিত করার জন্য jQuery ব্যবহার করে সবচেয়ে ভাল উপায় কী?

উত্তর:


347

ব্যবহারের removeAttr ...

$("option:selected").removeAttr("selected");

বা প্রোপ

$("option:selected").prop("selected", false)

3
আইই 8 এর অধীনে কাজ করে না st stackoverflow.com/questions/7960773/…
ক্লিনটন পিয়ার্স

60
এই উত্তরটি জিনিস করার উপায় নয় (এবং বুট করার জন্য সর্বজনীনভাবে কাজ করে না)। সঠিক পন্থাগুলি হয় হয় .val([])বা .prop("selected", false)- নীচে স্ক্রোল করুন।
জন

1
জিকুয়েরি অবশ্যই এটি ঠিক করে ফেলেছে, এটি জিক্যুরি ১.7.২ ব্যবহার করে আইই 8-এ আমার জন্য নিখুঁতভাবে কাজ করছে।
মিকি জি

2
OR .val (['']) কোনও শূন্য মান নির্বাচন করতে।
চিহ্নিত করুন

2
$("option:selected").prop("selected", false)কখনও কখনও কাজ না। (jquery v1.4.2 সহ ক্রোম ব্রাউজারে কাজ করছেন না)
রোহিত গায়ানি

163

এখানে প্রচুর উত্তর রয়েছে তবে দুর্ভাগ্যক্রমে সেগুলি সমস্তই বেশ পুরানো এবং তাই নির্ভর করে attr/ removeAttrযা আসলেই যাওয়ার উপায় নয়।

@ কফি আইপ্লেস সঠিকভাবে উল্লেখ করেছে যে একটি ভাল, ক্রস-ব্রাউজার সমাধান ব্যবহার করা

$("select").val([]);

আর একটি ভাল ক্রস ব্রাউজার সমাধান

// Note the use of .prop instead of .attr
$("select option").prop("selected", false);

আপনি এটি এখানে একটি স্ব-পরীক্ষা চালানো দেখতে পারেন । আইই 7/8/9, এফএফ 11, ক্রোম 19 এ পরীক্ষিত।


1
নির্বাচিত উত্তরের চেয়ে অনেক ভাল, (ক্রস ব্রাউজারে কাজ করে এবং এ্যাট্রিবিউটস সেটগুলির সাথে জগাখিচির সাথে জড়িত না)
তীমথিয় গ্রুট

1
সমস্ত অপশন নির্বাচন না করার জন্য সঠিক উত্তর । তবে এটি সুনির্দিষ্ট বিকল্পগুলি নির্বাচন করতে সত্যই ব্যবহৃত হতে পারে না, যেখানে রিমুভআটারটি পারে।
মিকি জি

2
@ মাইকিজি: এটি লক্ষ করে যে Array.indexOfআইই <9 এর জন্য একটি পলিফিল প্রয়োজন (অথবা আপনি অনেক জেএস লাইব্রেরি সরবরাহ করে এমন কোনও সমতুল্য পদ্ধতি ব্যবহার করতে পারেন)।
জন

1
আপনি কি এইচটিএমএল পরে পরীক্ষা করেছেন $('#select').val([]);? দুর্ভাগ্যক্রমে, এটি selected="selected"বৈশিষ্ট্যটি সরিয়ে দেয় না । এর ফলে ভুল ডেটা পোস্ট করা শেষ হতে পারে। আমি এই পদ্ধতির সুপারিশ না!
Fr0zenFyr

1
@ ফ্র0জেনফায়ার: যদি আপনি কোনও পূর্বনির্ধারিত বিকল্প দিয়ে শুরু করেন এবং আপনি এটি একটি মাউস ক্লিক দিয়ে ম্যানুয়ালি নির্বাচন করেন, তবে এটি বৈশিষ্ট্যটি সরাবে না - এবং অবশ্যই ফর্মটি জমা দেওয়ার সঠিক তথ্য পোস্ট করার গ্যারান্টিযুক্ত। এইচটিএমএল বৈশিষ্ট্যগুলির মধ্যে (যা প্রাথমিক অবস্থা নির্ধারণ করে) এবং ডোম বৈশিষ্ট্যগুলির মধ্যে পার্থক্য রয়েছে (এটি নির্ধারণ করে যে কোনটি প্রদর্শন করে এবং কী জমা দেয়)। এটি প্রকৃতপক্ষে কারণটির কারণগুলিতে অ্যাট্রিবিউটকে কেন্দ্র করে সমাধানগুলি ভুল। বৈশিষ্ট্যটি সম্পত্তিটির প্রাথমিক মান নির্ধারণ করে তবে এটি যতদূর যায়।
জন

24

জিজ্ঞাসা করার পরে এটি অনেকক্ষণ হয়ে গেছে, এবং আমি পুরানো ব্রাউজারগুলিতে এটি পরীক্ষা করি নি তবে এটি আমার কাছে খুব সহজ উত্তর বলে মনে হচ্ছে

$("#selectID").val([]);

.val () পাশাপাশি নির্বাচনের জন্যও কাজ করে http://api.jquery.com/val/


এটি সর্বোত্তম উপায় এবং প্রকৃতপক্ষে বেশিরভাগ ব্রাউজারে মানটি সাফ করে - ধন্যবাদ।
সেগিভ এসইও

এটি কেবল বহু-নির্বাচনের জন্য কাজ করে। $("select option").prop("selected", false);সর্বজনীনভাবে কাজ করে (বহু এবং একক নির্বাচনের উপর)।

23

সহজ পদ্ধতি

$('select').val('')

আমি কেবল এটি সিলেক্টে ব্যবহার করেছি এবং এটি কৌশলটি করেছে।

আমি jQuery 1.7.1 এ আছি ।


1
আমি এই সমাধানটি সম্পর্কে একটি সমস্যার মুখোমুখি হয়েছি। বিকল্প ট্যাগটিতে এখনও "নির্বাচিত" বৈশিষ্ট্য থাকবে
তামারা

@ তমরা সত্যি? আমি চেক করিনি। আপনি কি কোনও কিছুর জন্য "নির্বাচিত" ব্যবহার করছেন এবং এটি আপনার জন্য জিনিসগুলি বিভ্রান্ত করছে?
জোশুয়া পিন্টার

19

উত্তরগুলি এখনও অবধি কেবল আই 6/7 এ একাধিক নির্বাচনের জন্য কাজ করে; আরও সাধারণ অ-মাল্টি সিলেক্ট করার জন্য আপনাকে ব্যবহার করতে হবে:

$("#selectID").attr('selectedIndex', '-1');

এটি ফ্লাই ফিশার 64 এর সাথে সংযুক্ত পোস্টে ব্যাখ্যা করা হয়েছে। আপনি যদি এটি তাকান, আপনি দেখতে পাবেন যে কীভাবে 2 টি মামলা রয়েছে - মাল্টি / নন-মাল্টি। সম্পূর্ণ সমাধানের জন্য উভয়কেই থামিয়ে দেওয়ার কিছু নেই:

$("#selectID").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");

7

ওহ জ্যাকোয়ারি

যেহেতু একটি নেটিভ জাভাস্ক্রিপ্ট পদ্ধতির এখনও আছে, আমি এটি সরবরাহ করার প্রয়োজনীয়তা অনুভব করছি।

var select = document.querySelector('select'); //hopefully you'll use a better selector query
select.selectedIndex = 0; // or -1, 0 sets it to first option, -1 selects no options

এবং এটি আপনাকে কত দ্রুত তা দেখানোর জন্য: বেনমার্ক


JQuery ছাড়াই এই উত্তরের জন্য ধন্যবাদ! :)
সরোমাস

6
$("#selectID option:selected").each(function(){
  $(this).removeAttr("selected");
});

এটি প্রতিটি আইটেমটি দিয়ে পুনরাবৃত্তি করবে এবং যাচাই করা হয়েছে কেবল তা নির্বাচন করতে হবে


5

একটি তাত্ক্ষণিক গুগল এই পোস্টটি খুঁজে পেয়েছে যা আপনি কীভাবে আইআই-তে একক এবং একাধিক নির্বাচনী তালিকার জন্য চান তা কী করে তা বর্ণনা করে। সমাধানটি বেশ মার্জিত বলে মনে হচ্ছে:

$('#clickme').click(function() {
        $('#selectmenu option').attr('selected', false);

}); 



3

সমাধানের জন্য অনেক ধন্যবাদ।

একক পছন্দ কম্বো তালিকার সমাধান পুরোপুরি কার্যকর করে works অনেক সাইটে অনুসন্ধানের পরে আমি এটি পেয়েছি।

$("#selectID").attr('selectedIndex', '-1').children("option:selected").removeAttr("selected");



1

সাধারণত আমি যখন একটি সিলেক্ট মেনু ব্যবহার করি তখন প্রতিটি বিকল্পের সাথে এর সাথে একটি মান যুক্ত থাকে। উদাহরণ স্বরূপ

<select id="nfl">
  <option value="Bears Still...">Chicago Bears</option>
  <option selected="selected" value="Go Pack">Green Bay Packers</option>
</select>
console.log($('#nfl').val()) logs "Go Pack" to the console
Set the value to an empty string $('#nfl').val("")
console.log($('#nfl').val()) logs "" to the console

এখন এটি বিকল্প থেকে নির্বাচিত বৈশিষ্ট্যটিকে সরিয়ে দেয় না তবে আমি যা চাই তা হল মান।


0

আপনার নির্বাচনের মধ্যে একটি আইডি সেট করুন, যেমন:
<select id="foo" size="2">

তারপরে আপনি ব্যবহার করতে পারেন:
$("#foo").prop("selectedIndex", 0).change();

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.