2011-01-29 13 views
70

मुझे लगता है कि शीर्षक एक उपयोगी तरीका में सभी इनपुट प्रकार के तत्वों, <select> सहित पर पर्याप्तjQuery .val() और .attr ('value') के बीच क्या अंतर है?

+2

jQuery .val() बनाम .attr ("मूल्य"): http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue –

उत्तर

80

.val() काम करता है स्पष्ट है ... यहां तक ​​कि <select multiple>, चेक बॉक्स, और रेडियो बटन (जिसमें .val() हो जाता है या एक सेट के मामलों में सरणी चयनित मानों न सिर्फ एक स्ट्रिंग) की

तो मूल रूप से वे विभिन्न प्रयोजनों की सेवा है, भले ही .attr('value'), कुछ स्थितियों में एक ही व्यवहार करती है बक्सें की तरह। हर जगह लगातार व्यवहार पाने के लिए पसंदीदा विधि .val() है।


बस किक के लिए

, यहां चेक बॉक्स के लिए एक कम प्रसिद्ध उदाहरण है .val() काम करता है कि:

$("input[name='mytest']").val([1, 2, 3]); 

.... जो की जाँच करेगा:

<input name="mytest" type="checkbox" value="1"> 
<input name="mytest" type="checkbox" value="2"> 
<input name="mytest" type="checkbox" value="3"> 
<input name="mytest" type="checkbox" value="4"> 

आप ऐसा कर सकते हैं पहले 3 बक्से You can give it a try here

+1

कम ज्ञात उदाहरण के लिए धन्यवाद। – ScottE

+1

अच्छी तरह से लिखा है! आप क्रॉस-ब्राउज़र सामान्यीकरण पर एक छोटा सा विस्तार जोड़ना चाहते हैं जो jQuery इस तरह के तरीकों के साथ करता है। – mekwall

+11

भी ध्यान रखें कि '.attr ('मान')' मूल मान, नहीं वर्तमान स्थिति पढ़ता है। [यह भी देखें।] (Http://stackoverflow.com/questions/8312820/jquery-obj-val-vs-obj-attrvalue) – XML

9

इसके अलावा .attr ('मान') मूल्य कि संपादन इनपुट क्षेत्र पहले था देता है। और .val() वर्तमान मान देता है।

+0

धन्यवाद। समझ में आता है। – Vikram

1

ACTIS के जवाब देने के लिए जोड़ने के लिए ...

इसके अलावा .attr ('मान') मूल्य कि संपादन इनपुट क्षेत्र पहले था देता है। और .val() वर्तमान मान देता है।

टेक्स्ट एंट्री फ़ील्ड के साथ काम करते समय, .attr() और .val() के सेटटर विधियां अलग-अलग काम करती हैं।

.val('newval') 

उपयोगकर्ता को पृष्ठ पर देखे जाने वाले मान को सेट करेगा और बाद के .val() विधि कॉल द्वारा दिए गए मान को अपडेट करेगा। यह तत्व की मान = विशेषता सेट नहीं करेगा।

OTOH

.attr('value','newval') 

मूल्य = तत्व में यह विशेषता सेट हो जाएगा। यदि उपयोगकर्ता टाइप नहीं किया गया है और .val (newval) नहीं कहा गया है, तो ऐसा करने से नियंत्रण को दृष्टि से अपडेट किया जाएगा और .val() द्वारा दिए गए मान को अपडेट किया जाएगा।

आप निम्न jsfiddle साथ आगे की जांच कर सकते हैं:

https://jsfiddle.net/jasonnet/vamLww2k/

गुड लक।

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