<ইনপুট> এ কীভাবে একটি "পঠনযোগ্য" বৈশিষ্ট্য যুক্ত করবেন?


301

আমি কীভাবে readonlyএকটি নির্দিষ্ট যুক্ত করতে পারি <input>? .attr('readonly')কাজ করে না.


2
.attr ( 'কেবলমাত্র', সত্য) কাজ, অন্যান্য Dont
Qiao থেকে

3
.attr ('কেবলমাত্র পঠনযোগ্য', 'পঠনযোগ্য') এছাড়াও কাজ করে
কিআও

3
এটি নির্ভর করে আপনি কোন ডক্টইপিই ব্যবহার করেন। এইচটিএমএল ৪.০১ এর জন্য সিটিএস থেকে উত্তর ডিডিডি কাজ করছে এবং কার্যকর এইচটিএমএল ৪.০১ রয়েছে। আপনি যদি কোনও এক্সএইচটিএমএল ডিটিডি ব্যবহার করেন তবে সেয়েজোজের উত্তরটি কার্যকর এবং বৈধ এক্সএইচটিএমএল।
বজোর্নুইববেন

2
এটি ডক্টাইপের উপর নির্ভর করে না, এটি এইচটিএমএল বা এক্সএমএল এর মাধ্যমে পড়া হয়েছিল কিনা, এবং কোনও ক্ষেত্রে এক্সএইচটিএমএল আসলে আইএমএল হিসাবে এক্সএমএল নয়, আইএম এর সামঞ্জস্যের জন্য পরিবেশন করা হয় কিনা তা সমান।
বোবিনস

উত্তর:


545

jQuery <1.9

$('#inputId').attr('readonly', true);

jQuery 1.9+

$('#inputId').prop('readonly', true);

প্রোপ এবং অ্যাটর মধ্যে পার্থক্য সম্পর্কে আরও পড়ুন


1
তুমি কি নিশ্চিত? আমি খুব পাশাপাশি চিন্তা কিন্তু চশমা সম্পর্কে কিছুই খুঁজে পাচ্ছি না। <ইনপুট নাম = "ফু" পঠনযোগ্য = "পঠনযোগ্য" মান = "বার" /> এক্সএইচটিএমএল 1.0 কঠোর সাথে বৈধতা। w3.org এ পুরোপুরি যাচাই করে।
জোনাস স্টেনসভেড

17
এই পোস্টটি .ttr () এর পরিবর্তে .prop () এ পরিবর্তন করা উচিত, jQuery এপিআই-তে বলা হয়েছে: jquery.com/upreg-guide/1.9/#attr-versus-prop-
frsca

কেবলমাত্র বিভ্রান্তিকর নাম সত্ত্বেও, পঠনযোগ্য বৈশিষ্ট্যটি একটি "বুলিয়ান বৈশিষ্ট্য" - কী ডাব্লু । যদিও আমি মনে করি উপরের কোডটি আসলে কাজ করবে (jQuery 1.8.1 এর সাথে ক্রোমে পরীক্ষিত), এটি অনভিজ্ঞদের জন্য পরে বিভ্রান্তির কারণ হতে পারে। এছাড়াও, jQuery ডক্স অনুসারে মানটি সংখ্যা বা স্ট্রিং হওয়া উচিত, বুলিয়ান নয়। api.jquery.com/attr/#attr2
লুক

151

$ .প্রপ () ব্যবহার করুন

$("#descrip").prop("readonly",true);

$("#descrip").prop("readonly",false);

8
.Prop এর জন্য jQuery এপিআই পড়ার পরে, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। আমি অতীতে সর্বদা .attr ('কেবলমাত্র পঠনযোগ্য', 'কেবলমাত্র পঠনযোগ্য') এবং .removeAttr ('কেবলমাত্র পঠনযোগ্য') করতাম তবে এটি আরও সঠিক বলে মনে হয় এবং কোডটি আরও পরিষ্কার করে তোলে।
ইভান w

4
প্রত্যেকের এই উত্তরটি ব্যবহার করা উচিত, যেমনটি এখানে বলা হয়েছে: jquery.com/upreg-guide/1.9/#attr-versus-prop-
frsca

4
ব্যবহারের সাথে সতর্কতার একটি শব্দ $.prop(): প্রপ খালি / খালি স্ট্রিংটিতে পঠনযোগ্য বৈশিষ্ট্যটি সেট করবে, সুতরাং আপনার যদি এমন কোনও সিএসএস থাকে যা বিশিষ্ট নির্বাচক ব্যবহার করে [readonly="readonly"]তবে আপনাকে এটিতে পরিবর্তন করতে হবে [readonly](বা উভয়কে অন্তর্ভুক্ত)।
লুক

28

পঠনযোগ্য হ'ল এইচটিএমএল হিসাবে সংজ্ঞায়িত একটি বৈশিষ্ট্য, সুতরাং এটির মতো আচরণ করুন।

আপনি যদি সম্পাদনাযোগ্য না হতে চান তবে আপনি যে বস্তুর সাথে কাজ করছেন তার মধ্যে কেবল পঠনযোগ্য = "পঠনযোগ্য" এর মতো কিছু থাকা দরকার। এবং আপনি যদি এটি আবার সম্পাদনযোগ্য হতে চান তবে আপনার কাছে পঠনযোগ্য = '' এর মতো কিছু থাকবে না (আমি সঠিকভাবে বুঝতে পারলে এটি স্ট্যান্ডার্ড নয়)। আপনাকে সামগ্রিকভাবে পুরোপুরি বৈশিষ্ট্যটি সরানো দরকার।

যেমন jquery ব্যবহার করার সময় এটি যুক্ত করা এবং এটি অপসারণ করার অর্থ কী তা বোঝায়।

কেবল পাঠযোগ্যভাবে সেট করুন:

$("#someId").attr('readonly', 'readonly');

কেবলমাত্র পঠনযোগ্য অপসারণ:

$("#someId").removeAttr('readonly');

এটিই ছিল একমাত্র বিকল্প যা সত্যই আমার পক্ষে কাজ করেছিল। আশা করি এটা সাহায্য করবে!


20

.attr('readonly', 'readonly')কৌতুক করা উচিত। আপনার .attr('readonly')শুধুমাত্র মানটি ফেরত দেয়, এটি কোনও সেট করে না।


16
নামগুলি অন্যথায় বোঝানো হলেও jQuery এর অ্যাটার () এইচটিএমএল বৈশিষ্ট্য নয়, জাভাস্ক্রিপ্ট বৈশিষ্ট্যে কাজ করে। অ্যাটর ('পঠনযোগ্য') আসলে ডিওএম লেভেল 1 এইচটিএমএল সম্পত্তি পড়ার জন্যই কাজ করে যা কেবল বুলিয়ান, সুতরাং 'সত্য' আরও উপযুক্ত। যাইহোক, স্ট্রিং 'রিডোনলি' হ'ল স্বয়ংক্রিয়ভাবে কোনও বুলিয়ানে রূপান্তরিত হওয়ার পরেও সত্যবাদী মান হয়, সুতরাং উপরেরটি এখনও কাজ করে।
ববিনস

আমি মনে করি না আপনি 'সত্য' এ গুণটি সেট করতে চান। .attrJQuery ডক্স অনুসারে মানটি কেবল একটি স্ট্রিং বা সংখ্যার হতে হবে, বুলিয়ান নয়: api.jquery.com/attr/#attr2 এছাড়াও, এইচটিএমএল "বুলিয়ান বৈশিষ্ট্য" কেবল খালি স্ট্রিং বা বৈশিষ্ট্যের মান হওয়া উচিত। আমি মনে করি সমাধানটি .prop()বিভ্রান্তি এড়ানোর জন্য ব্যবহার করা।
লুক

16

আমার মনে হয় "অক্ষম" পোষ্টে পাঠানো থেকে ইনপুটটিকে বাদ দেয়


4
হ্যাঁ এটা করে. কেবলমাত্র এই কারণে "অক্ষম" বিকল্পের সন্ধান করার সময় আমি এই থ্রেডটি পেয়েছি।
জোনাস স্টেনসভেড

তবে আপনি এটি প্রেরণের ঠিক আগে এটিকে সক্ষম করতে পারেন, এবং পরে এটি অক্ষম করুন later (নথি) on প্রয়োজনীয়} এটি কাজ করে আমি এটি পরীক্ষা করে
দেখেছি

এইচটিএমএল-তে কেবল পাঠ্য ইনপুট মানগুলি কি লুকানো ব্যবহার না করে পোস্টে প্রেরণ অনুমোদিত?
অজয় তাকুর

12

আপনি .removeAttr ব্যবহার করে পঠনযোগ্য অক্ষম করতে পারেন;

$('#descrip').removeAttr('readonly');

5

কেবলমাত্র পঠনযোগ্য সক্ষম করার জন্য:

$("#descrip").attr("readonly","true");

কেবলমাত্র পঠনযোগ্য অক্ষম করার জন্য

$("#descrip").attr("readonly","");

থেকে api.jquery.com/attr "jQuery এর 1.6 পর্যন্ত .attr () মেথড আয় বৈশিষ্ট্যাবলী যে সেট করা না করার জন্য undefined। উদ্ধার করা এবং, টিক চিহ্ন দেওয়া যেমন পরিবর্তন করে DOM বৈশিষ্ট্য নির্বাচিত, অথবা ফর্ম উপাদানের অক্ষম রাষ্ট্র, .prop () পদ্ধতিটি ব্যবহার করুন। "
ডেভিড ক্লার্ক

1
গুণটি "সত্য" এর স্ট্রিংয়ে সেট করা উচিত নয়। এটি কাজ করতে পারে তবে প্রযুক্তিগতভাবে সঠিক নয়। (উপরে আমার পূর্ববর্তী মন্তব্য দেখুন।)
লুক

এই পরামর্শটি ব্যবহার করবেন না, এখানে আরও অনেক বেশি ভাল উপলব্ধ। "সত্য" সেটিংসের জন্য সঠিক নয়, এবং অপসারণও ভুল।
MiFiHiBye

4

সেটঅ্যাট্রিবিউট সম্পত্তিটি ব্যবহার করুন। উদাহরণস্বরূপ নোট করুন যে 1 টি নির্বাচিত হলে পাঠ্যবক্সে কেবলমাত্র পঠিত বৈশিষ্ট্য প্রয়োগ করুন, অন্যথায় বৈশিষ্ট্যটি পঠনযোগ্যভাবে সরান।

http://jsfiddle.net/baqxz7ym/2/

document.getElementById("box1").onchange = function(){
  if(document.getElementById("box1").value == 1) {
    document.getElementById("codigo").setAttribute("readonly", true);
  } else {
    document.getElementById("codigo").removeAttribute("readonly");
  }
};

<input type="text" name="codigo" id="codigo"/>

<select id="box1">
<option value="0" >0</option>
<option value="1" >1</option>
<option value="2" >2</option>
</select>

-4

JQuery সংস্করণের জন্য <1.9:

$('#inputId').attr('disabled', true);

JQuery সংস্করণ জন্য> = 1.9:

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