2011-03-24 13 views
45

है जब इनपुट में 'रीडोनली' विशेषता होती है तो मैं एक चेतावनी फेंकना चाहता हूं। मैंने यह कोशिश की है:पता लगाएं कि इनपुट में 'रीडोनली' विशेषता

if($('input').attr('readonly') == 'readonly'){ 

    alert("foo"); 
    } 

मुझे लगता है कि 'अगर' ऐसा करने का सबसे अच्छा तरीका भी नहीं है।

उत्तर

107

सबसे तेज़ तरीका .is() jQuery समारोह का प्रयोग है।

if ($('input').is('[readonly]')) { } 
[readonly] का उपयोग कर के रूप में एक चयनकर्ता बस की जाँच करता है, तो विशेषता अपने तत्व पर परिभाषित किया गया है

। आप एक मूल्य के लिए जाँच करना चाहते हैं, तो आप इस बजाय की तरह कुछ का उपयोग कर सकते हैं: यहां पढ़ें क्यों

if($('input[readonly="readonly"]')){ 
    alert("foo"); 
} 
+0

मैं केवल एक पोस्टबैक को रोकने की कोशिश कर रहा हूं अगर यह केवल मोड पढ़ा जाए। मेरे पास एएसपीनेट पेज है। http://stackoverflow.com/questions/30351993/how-to-disable-enter-key-when-a-asp-net-textarea-is-in-readonly-mode – SearchForKnowledge

3

तुम बस विशेषता का भी उपयोग कर सकते हैं और फिर लंबाई का परीक्षण:

$('input[readonly]').length == 0 // --> ok 
$('input[readonly]').length > 0 // --> not ok 
0

इस प्रयास करें:

if($('input').attr('readonly') == undefined){ 
    alert("foo"); 
} 

यदि यह वहाँ नहीं है उस में js

3

चेक undefined हो जाएगा आपके "केवल पढ़ने योग्य" विशेषता का वर्तमान मान, यदि यह "झूठा" (एक स्ट्रिंग) या खाली (अपरिभाषित या "") है तो यह केवल पढ़ने योग्य नहीं है।

$('input').each(function() { 
    var readonly = $(this).attr("readonly"); 
    if(readonly && readonly.toLowerCase()!=='false') { // this is readonly 
     alert('this is a read only field'); 
    } 
}); 
2

एक आसान तरीका का प्रयास करें : http://api.jquery.com/prop/

if($('input').prop('readonly')){ } 

.prop() भी संपत्ति

स्थापित करने के लिए इस्तेमाल किया जा सकता
14

JQuery 1.6 के बाद से, हमेशा .prop का उपयोग():

if ($('input').is('[readonly="somevalue"]')) { } 
संबंधित मुद्दे