2012-01-27 16 views
9

मेरे पास परीक्षण करने के लिए यह सरल jQuery कोड है।मैं इस सरल jQuery का उपयोग कर HTML टेक्स्टफील्ड को कैसे अक्षम कर सकता हूं?

<html> 
<head> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("button").click(function(){ 
      $("text").attr("disabled",""); 
     }); 
    }); 
</script> 
</head> 
<body> 
<input type="text"> 
<br /> 
<button>Set the textfield disabled</button> 
</body> 
</html> 

मूल रूप से HTML पृष्ठ एक साधारण बटन और टेक्स्टफील्ड के साथ आता है। जब मैं बटन पर क्लिक करता हूं तो मैं इनपुट फ़ील्ड को अक्षम करना चाहता हूं। लेकिन यह काम नहीं करता ???

(पुनश्च: इस कोड w3schools.com वेबसाइट से बाहर प्राप्त किया जाता है, बस का परीक्षण करने के लिए कैसे शक्तिशाली jQuery है)।

+0

बंद करना चाहिए जो बताता है कि डब्ल्यू 3 स्कूली की सराहना क्यों नहीं की जाती है। एचटीएमएल मान्य नहीं है। उस पाठ तत्व को देखें ... – gdoron

+0

@gdoron: '' element के साथ क्या गलत है? यह ठीक से बंद नहीं है? क्या यह HTML5 में मान्य नहीं है? ' 'तत्वों में कभी सामग्री नहीं है, इसलिए यह स्पष्ट नहीं है। – mpen

+0

@ मार्क। मेरा जवाब देखो। यह प्रत्येक एक्सएमएल तत्व की तरह स्वयं बंद '' के साथ होना चाहिए। – gdoron

उत्तर

11

jQuery 1.7 से, आप .prop इस्तेमाल कर सकते हैं:

$(document).ready(function(){ 
    $("button").click(function(){ 
     $(":text").prop("disabled", true); 
    }); 
}); 

1,7 से पहले, आप कर सकता है:

$(document).ready(function(){ 
    $("button").click(function(){ 
     $(":text").attr("disabled", true); 
    }); 
}); 

पुनश्च: उपयोग $(":text") या $('input[type="text"]') प्रकार के पाठ के सभी तत्वों का चयन करें।

+0

$ ('text') वैध चयनकर्ता नहीं है! – devnull69

+0

.attr jQuery 1.7+ पर भी काम करता है। – gabitzish

+0

@ devnull69 हां, आप सही हैं, ध्यान नहीं दिया। – xdazz

0

$ ("इनपुट") attr ("अक्षम", "अक्षम");

+0

इससे बटन पर और बटन पर एक-दूसरे के इनपुट को भी अक्षम कर दिया जाएगा ... – gdoron

-1

"अक्षम" एक संपत्ति है, प्रति विशेषता नहीं है। "चेक" या "अक्षम" जैसे बूलियन हमेशा उन्हें एक्सेस करते समय अद्यतन (या पुनर्प्राप्त) नहीं होते हैं।

$(':text').prop('disabled',true); 

का उपयोग करें।

+0

$ ('टेक्स्ट') एक वैध चयनकर्ता नहीं है! – devnull69

+0

@ devnull69: मेरा बुरा। सोचा था कि इसके बारे में कुछ खत्म हो गया था। ': पाठ' हालांकि है। अपडेट किया गया। मुझे लगता है कि मुझे लगता है कि अगर चयनकर्ता किसी तत्व से मेल खाता है तो वह जांच करेगा। – mpen

1

या (और अधिक आधुनिक):

$("input[type=text]").prop('disabled', true); 
2

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

<html> 
<head> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){  
$("button").click(function(){   
$("#text").attr("disabled","true");  
}); 
}); 
</script> 
</head> 
<body> 
<input id="text" type="text"> 
<br /> 
<button>Set the textfield disabled</button> 
</body> 
</html> 
+0

@ devnull69- मैंने इसे चेक किया है और यह ठीक काम करता है !!! –

+0

@gdoron तपस ने – devnull69

+0

@ devnull69 से नीचे HTML को भी बदल दिया। लेकिन इसे एक गरीब इंडेंट के साथ छुपाया ... =) – gdoron

1

वहाँ jquery में text चयनकर्ता नहीं है। आप विशेषता का भी उपयोग कर की जरूरत है [attribute=value]

$('input[type=text]').prop('disabled', true); // prop Works on jquery 1.7+ 

या:

$:

$('input[type=text]').attr('disabled', 'disabled'); // Works in each version. 
                // But isn't W3C standard. 

वहाँ एक :text चयनकर्ता है, लेकिन यह कम कुशल तो पहला विकल्प है, docs देखना (': text')$ ('[type = text]' के बराबर है) और इस प्रकार चयन करें सभी तत्व हैं। अन्य छद्म-वर्ग चयनकर्ताओं के साथ (जो ":" से शुरू होते हैं) को टैग नाम या किसी अन्य चयनकर्ता के साथ इसे अनुशंसा करने की अनुशंसा की जाती है; अन्यथा, सार्वभौमिक चयनकर्ता ("") निहित है। दूसरे शब्दों में, नंगे $ (': text') $ (': टेक्स्ट') के बराबर है, इसलिए $ ('इनपुट: टेक्स्ट') का उपयोग इसके बजाय किया जाना चाहिए।

अतिरिक्त नोट्स: क्योंकि : पाठ एक jQuery विस्तार और का हिस्सा नहीं सीएसएस विनिर्देश, है का उपयोग करके क्वेरी: पाठ नहीं प्रदर्शन देशी डोम querySelectorAll() विधि द्वारा प्रदान को बढ़ावा देने का लाभ ले सकते। आधुनिक ब्राउज़रों में बेहतर प्रदर्शन के लिए, इसके बजाय [type = "text"] का उपयोग करें।

ध्यान दें कि आपका एक्सएचटीएमएल मान्य नहीं है। आपको <input type="text"> =><input type="text" />

+0

हाँ। शायद यही कारण है। – awongCM

+0

@ एडब्ल्यू-जीडब्ल्यूटीएफ 8 99। तो आपको जवाब स्वीकार करना चाहिए ... ** =) ** – gdoron

संबंधित मुद्दे

 संबंधित मुद्दे