jQuery সেট রেডিও বোতাম


134

আমি একটি রেডিও বোতাম সেট করার চেষ্টা করছি। আমি মান বা আইডি ব্যবহার করে এটি সেট করতে চাই।

এটিই আমি চেষ্টা করেছি।

$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);

newcol রেডিও বোতামের আইডি।

সম্ভবত সামান্য সম্পাদনা ক্রমযুক্ত।

এখানে দুটি সেট রেডিও বাক্স রয়েছে যার একটি কলস এবং অন্যটি সারি সহ। সুতরাং আমি আইডি ব্যবহার না করার পয়েন্টটি দেখতে পাচ্ছি। আমার খারাপ। সুতরাং আমি একটি উদাহরণ হিসাবে আছে:

<input type="radio" name="rows" class="listOfCols" 
   style="width: 50%; " value="Site"></input>

এবং

<input type="radio" name="cols" class="listOfCols" 
   style="width: 50%; "  value="Site"></input>

আইডি মুছে ফেলা সহ, এবং আমার সঠিক একটি সেট করা প্রয়োজন।


উত্তর:


196

আপনার নির্বাচকটি এমন কোনও input:radio[name=cols]উপাদানটির বংশধরকে সন্ধান করেন যার আইডি রয়েছে newcol(সেই পরিবর্তনকের মান ভাল)।

পরিবর্তে এটি চেষ্টা করুন (যেহেতু আপনি যাইহোক আইডি দ্বারা নির্বাচন করছেন):

$('#' + newcol).prop('checked',true);

এখানে একটি ডেমো: http://jsfiddle.net/jasper/n8CdM/1/

এছাড়াও, jQuery 1.6 হিসাবে কোনও সম্পত্তি পরিবর্তনের অনুমিত পদ্ধতি হ'ল .prop(): http://api.jquery.com/prop


5
propবনাম জন্য +1 attrattrবৈশিষ্ট্যগুলির জন্য
অবমানিত

87

আমি উত্তরটি এখানে পেয়েছি:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery

মূলত, আপনি যদি একটি রেডিও বোতাম পরীক্ষা করতে চান তবে আপনাকে মানটিকে একটি অ্যারের হিসাবে পাস করতে হবে:

$('input:radio[name=cols]').val(['Site']);
$('input:radio[name=rows]').val(['Site']);

হ্যালো সেই লিঙ্কটিতে কোনও প্রস্তাবিত সামগ্রী নেই। আপনি কেন এই লিঙ্কটি সরাতে আমার সম্পাদনা প্রত্যাখ্যান করছেন। এতে বিষয়টি সম্পর্কিত কিছু নেই।
মেনুকা ইশান

@ মেনুকাআইশন, মূল কথাটি: ক্রেডিট দিন। লিঙ্কটি ওয়েব.আর্কাইভ.আরজে পাওয়া যায় এবং যে লোকটি প্রথমবার এটি লিখেছিল এবং যার কাছ থেকে আমি উত্তরটির ধারণা পেয়েছি তার কৃতিত্ব গ্রহণ করতে হবে। লিঙ্কটি সরাবেন না, এবং আপনি যদি মূল পোস্টটি দেখতে চান তবে লিঙ্কটি অনুলিপি করুন এবং পেস্ট করুন (কেন এটি
ওয়েব.আর্টিভ.আর.গ্রেসের

2
@ চোকোক্রোক আপনি প্রশ্নের মার্কডাউন সঠিকভাবে কনফিগার করেছেন না। আমি ওয়েব সংরক্ষণাগার সংস্করণটি দেখেছি এবং এটি সঠিকভাবে সংযুক্ত করেছি। পর্যালোচনা পরে এটি সঠিকভাবে সাইটের লিঙ্ক করব।
মেনুকা hanশান

2
দেখে মনে হচ্ছে এটি গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটি jQuery
ডক্সে

15

আপনার নির্বাচকটিতে মনে হচ্ছে আপনি কোনও প্রদত্ত আইডি দিয়ে আপনার রেডিও বোতামের কিছু নেস্টেড উপাদান আনার চেষ্টা করছেন। আপনি যদি একটি রেডিও বোতাম চেক করতে চান তবে আপনার এই রেডিও বোতামটি নির্বাচকের মধ্যে নির্বাচন করা উচিত অন্য কিছু নয়:

$('input:radio[name="cols"]').attr('checked', 'checked');

এটি ধরে নিয়েছে যে আপনার মার্কআপে আপনার নীচের রেডিও বোতাম রয়েছে:

<input type="radio" name="cols" value="1" />

যদি আপনার রেডিও বোতামটির একটি আইডি থাকে:

<input type="radio" name="cols" value="1" id="myradio" />

আপনি সরাসরি একটি আইডি নির্বাচনকারী ব্যবহার করতে পারেন:

$('#myradio').attr('checked', 'checked');

colsনামের সাথে যদি একাধিক রেডিও থাকে তবে $('input:radio[name="cols"]').attr('checked', 'checked');কেবলমাত্র সর্বশেষটি নির্বাচন করবে। এটি প্রতিটিটিতে কোড চালাবে, তবে যতবার আপনি checkedসম্পত্তি সেট করবেন , পূর্ববর্তী সেট উপাদানটি সেট না করে। এখানে একটি ডেমো রয়েছে: jsfiddle.net/jasper/n8CdM/2
জ্যাস্পার

@ য্যাস্পার, হ্যাঁ, এটি সত্য। আমি আইডি নির্বাচনকারীকে ব্যবহার করার পরামর্শ দিয়েছি।
দারিন দিমিত্রভ

12

আপনি নিম্নলিখিত কোড চেষ্টা করতে পারেন:

$("input[name=cols][value=" + value + "]").attr('checked', 'checked');

এটি রেডিও কলাম এবং সুনির্দিষ্ট হিসাবে মানগুলির জন্য পরীক্ষিত বৈশিষ্ট্যটি সেট করবে।


1
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.সূত্র: api.jquery.com/attr
জ্যাস্পার

10

আপনার দরকার কেন 'input:radio[name=cols]'? আপনার এইচটিএমএল জানেন না, তবে এইডস অনন্য বলে ধরে নিচ্ছেন, আপনি কেবল এটি করতে পারেন।

$('#'+newcol).prop('checked', true);

6

এটা চেষ্টা কর:

$("#" + newcol).attr("checked", "checked");

আমি সমস্যা ছিল attr("checked", true), তাই আমি পরিবর্তে উপরের ব্যবহার করার ঝোঁক।

এছাড়াও, আপনার যদি আইডি থাকে তবে নির্বাচনের জন্য আপনার সেই অন্যান্য স্টাফের দরকার নেই। একটি আইডি অনন্য।


1
ঠেকনা ভালো জিনিসের জন্য ATTR বেশী ভালো
RozzA

অ্যাটর jQuery 1.9+ প্রপ ব্যবহার করুন
মাইক_লিয়ার্ড

আপনি ঠিক বলেছেন তবে শেষ পর্যন্ত এটি আপনার নির্দিষ্ট পরিস্থিতির উপর নির্ভর করে। যদি আপনার কোডটি সর্বদা jQuery 1.6+ এর সাথে চলতে থাকে তবে প্রপ যাবার উপায়। তবে যদি আপনার কোডটি পুরানো সংস্করণে চলতে পারে তবে সমাধানটি তেমন সোজা নয়। উদাহরণস্বরূপ, আমি jQuery পিকলিস্ট প্লাগইন বজায় রাখি এবং আমরা jQuery 1.4+ সমর্থন করি, তাই কেবল প্রপ ব্যবহার করা কোনও বিকল্প নয়। এটি একটি উন্মুক্ত টিকিট, সুতরাং আপনার যদি কোনও মার্জিত পরামর্শ থাকে তবে আমি সেগুলি শুনতে পছন্দ করব; আমার এখনও গবেষণা করার সময় হয়নি।
অজানারি বিয়ার

সমস্যাটি হ'ল এমনকি যদি আপনার সমাধানটি আরও পিছিয়ে-সামঞ্জস্যপূর্ণ হতে পারে তবে এটি কেবল এই ক্ষেত্রে কাজ করে না: একটি নির্বাচন করুন, এটি একটি নতুন checked="checked"বৈশিষ্ট্য পাবে এবং ব্রাউজারটি এটি পরীক্ষিত হিসাবে দেখায়, তারপরে বি নির্বাচন করুন এবং একই ঘটবে। এখন আপনি যখন আবার এ নির্বাচন করেন এতে ইতিমধ্যে checked="checked"বৈশিষ্ট্য থাকবে এবং কিছুই পরিবর্তন হবে না। সেই বি এর পার্শ্ব প্রতিক্রিয়া হিসাবে এখনও নির্বাচিত হবে, এ নয়
কিবোরেক


2

ব্যবহারটিও .filter()কাজ করে এবং আইডি, মান, নামের জন্য নমনীয়:

$('input[name="cols"]').filter("[value='Site']").attr('checked', true);

( এই ব্লগে দেখা হয়েছে )


1
আমি বিশ্বাস করি এটি সমানভাবে বৈধ উত্তর, তবে এর প্রোপ () পদ্ধতিটি ব্যবহার করা উচিত: $ ('ইনপুট [নাম = "কলস"]')। ফিল্টার ("[মান = 'সাইট']")। ', সত্য);। ব্যবহারকারী "মান বা আইডি" দ্বারা সেট করতে চান। এমন অনেক সময় হতে পারে যে আপনি প্রতিটি রেডিও বিকল্পের জন্য আইডি মান সেট করতে চান না, তাই নাম দ্বারা নামকরণ এবং মান দ্বারা ফিল্টারিং দরকারী।
জ্যাক ইম্বোডেন


0

আপনি কেবল ব্যবহার করতে পারেন:

$("input[name='cols']").click();

0

নির্বাচিত উত্তর এই ক্ষেত্রে কাজ করে।

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

এই লাইনটি স্ক্রিনে পরিবর্তনগুলি প্রদর্শন করার সময় ঠিক কী জন্য জিজ্ঞাসা করা হয়েছিল তা নির্বাচন করে।

$('input:radio[name=cols][id='+ newcol +']').click();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.