2016-04-07 11 views
6

DevTools में, इन दो पंक्तियों चलाएँ:setAttribute या सीधे के माध्यम से इनपुट के मूल्य को सेट करने के बीच अंतर क्यों?

1.

window.x = document.createElement("input"); 
x.type="text"; 
x.name="nm"; 
x.value="val"; 
x 
// <input type="text" name="nm"> 

2.

window.x = document.createElement("input"); 
x.type="text"; 
x.name="nm"; 
x.setAttribute("value", "val"); 
x 
// <input type="text" name="nm" value="val"> 

इसे दूसरे तरीके से क्यों मुद्रित जायेगा? मान दोनों मामलों में ठीक से सेट किया गया प्रतीत होता है। ऐसा लगता है कि संपत्ति और डोम विशेषता के बीच एक डिस्कनेक्ट है।

संपत्ति के लिए गेटर .value.getAttribute('value') के परिणाम से अलग हो जाता है। मैं पूरे दिन setAttribute() कर सकता हूं, लेकिन .value पुराना मान देता है।

+0

क्योंकि मूल्य और मूल्य विशेषता दो अलग बातें हैं। मान विशेषता लोड पर पूर्ण मान सेट करती है (पूर्ण स्टॉप)। आप आमतौर पर सिर्फ 'मान' चाहते हैं। यह इनपुट का सही मूल्य है। हालांकि यह मार्कअप में दिखाई नहीं देगा। – Liam

+1

कई विशेषताओं और डीओएम गुणों को एक साथ मैप किया गया है, 'मान' विशेषता/संपत्ति में [एक लंबा] है [https://www.w3.org/TR/html5/forms.html#value-sanitization- एल्गोरिदम) मैपिंग संबंध चश्मा जो मैंने देखा है ... –

उत्तर

2

दोनों दृष्टिकोणों के बीच मुख्य अंतर अंतर्निहित defaultValue संपत्ति को निर्धारित कर रहा है। जब आप setAttribute का उपयोग करते हैं, तो defaultValue संपत्ति दोनों के साथ-साथ value संपत्ति अपडेट/सेट की जाएगी। जबकि .value का उपयोग करके value केवल इसकी संपत्ति अपडेट/सेट कर दी जाएगी।

व्यवहार 1: (स्थापित करने मूल्य setAttribute का उपयोग कर)

x.setAttribute("value","test"); 
x.defaultValue; //"test" 
x.value; //"test" 

व्यवहार 2: (स्थापित करने मूल्य सीधे मूल्य संपत्ति का उपयोग कर)

x.value = "test"; 
x.defaultValue; //"" 
x.value; //"test" 
+0

क्या आपके पास इसके लिए कोई दस्तावेज है? – Lewis

+0

@ ट्रेस्डिन मैंने इसे पढ़ा और मुझे पता था। मुझे इसके लिए उद्धरण प्राप्त करने दें। –

+1

@Tresdin यहां डिफ़ॉल्ट वैल्यू परिभाषा के बारे में पढ़ें। _ जब तत्व के प्रकार विशेषता में "टेक्स्ट", "फ़ाइल" या "पासवर्ड" मान होता है, तो यह तत्व के HTML मान विशेषता का प्रतिनिधित्व करता है। इस विशेषता का मान तब नहीं बदलता है जब एक इंटरैक्टिव उपयोगकर्ता एजेंट में संबंधित फॉर्म नियंत्रण की सामग्री बदलती है। Https://www.w3.org/TR/DOM-Level-2-HTML/html.html# आईडी -6043025 –

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

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