jQuery চেক ইনপুট টাইপ চেকবক্স কিনা?


151

আমি একটি ইনপুট একটি চেকবক্স কিনা এবং তা অনুসন্ধান করতে চাই এবং নিম্নলিখিতগুলি কাজ করে না:

$("#myinput").attr('checked') === undefined

আবার আপনাকে ধন্যবাদ!

উত্তর:


333

আপনি :checkboxjQuery এর isফাংশনে কল দিয়ে সিউডো-সিলেক্টরটি ব্যবহার করতে পারেন :

$('#myinput').is(':checkbox')

1
এই পদ্ধতিটি আমি সর্বদা ব্যবহার করি।
তোফার ফ্যাঙ্গিও

আপনি সত্যিই এর চেয়ে সহজ আরও কিছু পেতে পারেন না।
কাইলফারিস

9
কেন এর জন্য নির্বাচক ইঞ্জিন ব্যবহার করবেন? এটি সম্পূর্ণ অপ্রয়োজনীয়।
টিম ডাউন

7
@ টিম ডাউন আমি আপনার বক্তব্য গ্রহণ করছি যে একই জিনিসটি সম্পাদন করার আরও কার্যকর উপায় থাকতে পারে। আমি মনে করি আমি এই সংস্করণটি পছন্দ করি কারণ কোডটি খুব পঠনযোগ্য।
কেন ব্রাউনিং 15

2
@ কেনব্রাউনিং: যথেষ্ট ফর্সা। ২০০৯-এ আমি মোটামুটি অ্যান্টি-জিকুয়েরি ছিলাম, বিশেষত সকলের জন্য অন্ধভাবে jQuery ব্যবহার করার প্রচলিত এসও মনোভাব; আমার দৃষ্টিভঙ্গিগুলি তখন থেকে কিছুটা প্রশমিত হয়েছে এবং যদি সম্ভব হয় তবে আমি আমার ডাউনটোটটি পূর্বাবস্থায় ফিরিয়ে আনব। যাইহোক, আমি এখনও আমার মনে হয় একটি পয়েন্ট ছিল। বিকল্প (যা আমি অস্বীকার করতে পারি না এটি আরও ভার্বোজ):var myInput = $("myinput")[0]; var isCheckbox = myInput.nodeName.toLowerCase() == "input" && myInput.type == "checkbox";
টিম ডাউন

22
>>> a=$("#communitymode")[0]
<input id="communitymode" type="checkbox" name="communitymode">
>>> a.type
"checkbox"

বা, jQuery এর স্টাইল আরও:

$("#myinput").attr('type') == 'checkbox'

পুরোপুরি বৈধ। সহজ নয়।
কাইলফারিস

6
এটি jQuery এর নির্বাচক ইঞ্জিন ব্যবহার করে সংরক্ষণ করে, যার ব্যবহার এখানে সম্পূর্ণ অনুপযুক্ত। প্রথম বৈকল্পিকটি আরও ভাল, যেহেতু jQuery এর বিভ্রান্ত attr()ফাংশনটি গোলযোগের কোনও সম্ভাবনা এড়িয়ে চলে ।
টিম ডাউন

3
@Tim নিচে ডান - আপনি পরিবর্তন করা উচিত attr()কাছে prop(), আমি যতদূর জানি। attr()ব্রাউজার থেকে সর্বদা "আসল" বৈশিষ্ট্য মানটি পাওয়া যায় না (অর্থাত চেক করা বা না)। কেন এ ঘটনাটি সত্য তা নিশ্চিত নয়, তবে আমি এটি কিছুক্ষণ আগে শিখেছি।
thekingoftruth

1
চোমে , আপনার দ্বিতীয় উদাহরণটি কেস সংবেদনশীল: jsfiddle.net/gtza0uuL । এটি .prop এর সাথে নেই তবে এটি গ্যারান্টিযুক্ত হতে পারে কিনা তা আমি জানি না। দ্রষ্টব্য: আপনি কেবল .toLowerCase () করতে পারবেন না কারণ 'টাইপ' অপরিজ্ঞাত হতে পারে।
xr280xr


6

একটি নন-জিক্যুয়ারি সমাধানটি অনেকটা jQuery সমাধানের মতো:

document.querySelector('#myinput').getAttribute('type') === 'checkbox'

2

এই ফাংশনটি ব্যবহার করুন:

function is_checkbox(selector) {
    var $result = $(selector);
    return $result[0] && $result[0].type === 'checkbox';
};

বা এই jquery প্লাগইন:

$.fn.is_checkbox = function () { return this.is(':checkbox'); };

0
$('#myinput').is(':checkbox')

চেকবক্সটি চেক করা হয়েছে কিনা তা সনাক্ত করার জন্য সমস্যাটি সমাধান করা এটিই একমাত্র কাজ। এটি সত্য বা মিথ্যা প্রত্যাবর্তন করে, আমি এটি ঘন্টার জন্য অনুসন্ধান করি এবং সমস্ত কিছু চেষ্টা করি, এখন এটির কাজ পরিষ্কার হওয়ার জন্য আমি ব্রাউজার এবং ডাব্লু 2 ইউআই হিসাবে ইডিজি ব্যবহার করি


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