2013-10-10 9 views
8

में नेस्टेड वस्तु से MVC4/उस्तरा में जावास्क्रिप्ट के लिए जाओ तो मैं इस तरह के पाठ बॉक्स को परिभाषित:तत्व की आईडी मॉडल

@Html.TextBoxFor(m => m.Contact.HomePhone) 

यह idContact_HomePhone के साथ एक input तत्व उत्पन्न होगा।

क्या यह id जावास्क्रिप्ट में Contact_HomePhone हार्डकोडिंग के बिना प्राप्त करना संभव है?

यह जहां मैं इस id गतिशील जावास्क्रिप्ट में जरूरत का एक उदाहरण है:

$("#Contact_HomePhone").mask("(999) 999-9999"); 

(मैं जानता हूँ कि प्रतिबिंब का उपयोग कर संपत्ति के नाम प्राप्त करने के लिए, लेकिन अभी भी _ हार्डकोड करने Contact और HomePhone श्रेणीबद्ध करना होगा।)

उत्तर

14

इस तरह से प्रयास करें, Html.IdFor का उपयोग करके आप सहायक द्वारा उत्पन्न आईडी प्राप्त कर सकते हैं।

$('#@Html.IdFor(m => m.Contact.HomePhone)').mask("(999) 999-9999"); 

बस jQuery के लिए # अवश्य लगा दें यह लेने के लिए।

लेकिन आप क्लास चयनकर्ता का उपयोग करके प्लगइन को बाध्य भी कर सकते हैं, उदाहरण के लिए कहें कि यदि आपके पास ऐसे कई फ़ोन फ़ील्ड हैं तो आप उन सभी टेक्स्टबॉक्सों के लिए एक सामान्य श्रेणी प्रदान कर सकते हैं और क्लास चयनकर्ता का उपयोग करके इसे मास्क प्लगइन बांध सकते हैं, यह निर्धारित करने से बचेंगे उपरोक्त विधि का उपयोग कर आईडी और एक आम चयनकर्ता का उपयोग करें।

@Html.TextBoxFor(m => m.Contact.HomePhone, null, new { @class = "phoneField"}); 

और आईडी के बारे में चिंता किए बिना आप बस उन्हें बांध सकते हैं।

$('.phoneField').mask("(999) 999-9999"); 
संबंधित मुद्दे