2012-12-18 25 views
11

इम में एक चेकबॉक्स एक जीयूआई विस्तार में दस्तावेज तैयार घटना का उपयोग कर jQuery द्वारा Tridion की ComponentView में एक चेकबॉक्स का चयन रद्द करने की कोशिश कर:सही का निशान हटाएँ ComponentView

$j(document).ready(function(){ 
    alert("is loaded"); 
    var field = $j('[type=checkbox][value=Aceptar]') 
    field.attr("checked",false); 
    console.log("field = " + field.is(':checked')); 
    alert("is checked field = " + field.is(':checked')); 
}); 

समस्या यह है कि है पर "$ जे (दस्तावेज़)। तैयार "क्षेत्र मूल्यों को घटक दृश्य में लोड नहीं लग रहा है। मेरी चेतावनी देता है कि फ़ील्ड अनचेक है, लेकिन जब दृश्य लोड हो रहा है चेकबॉक्स चेक किया गया है। ऐसा लगता है कि मानों को लोड करने से पहले "$ j (दस्तावेज़) .ready" आग लगती है। क्या कोई जानता है कि मुझे किस घटना का उपयोग करना चाहिए?

+0

दृश्य को पूरी तरह से लोड होने पर जावास्क्रिप्ट को निष्पादित करने के तरीके को देखने के लिए यहां देखें: http://stackoverflow.com/questions/12901161/how-to-handle-loading-of-a-view-in-tridions-cme। जॉन से जवाब पर ध्यान दें, क्योंकि वह दिखाता है कि कैसे निर्भरता को सही ढंग से प्रबंधित करना है। –

+1

आपको "चेक" जैसे गुणों को बदलने के लिए Jquery.attr() के बजाय Jquery.prop() का भी उपयोग करना चाहिए। –

उत्तर

3

@Adrian Salazar @Sogo आपकी मदद के लिए धन्यवाद, शायद मुझे उस संपत्ति को बदलने के लिए "attr" के बजाय बेहतर "प्रोप" का उपयोग करना चाहिए, लेकिन समस्या एक जैसी थी, फ़ील्ड अभी भी लोड नहीं हुए थे इसलिए मैं नहीं कर सका ' उस संपत्ति को बदल नहीं है।

@ फ्रैंक मैंने "$ evt.addEventHandler ($ डिस्प्ले," स्टार्ट ", डिस्प्लेस्टार्ट पर) की कोशिश की;" "घटक दृश्य" डिस्प्ले पर, और मेरे जीयूआई एक्सटेंशन की कॉन्फ़िगरेशन पर उस दृश्य को विस्तारित करते हुए, लेकिन उस घटना पर फ़ील्ड्स अभी भी लोड नहीं होते हैं, और हर बार जब मैंने अपने चेकबॉक्स फ़ील्ड तक पहुंचने का प्रयास किया तो उसने कहा कि "अपरिभाषित" था।

"EventSystem.Subscribe <Component, LoadEventArgs> (OnComponentLoad, EventPhases.Processed);" 

Nuno के रूप में यहां बताते http://www.tridiondeveloper.com/inheriting-metadata-on-organizational-items#more-1073, वह एक OrganizationalItem पर इसे इस्तेमाल करता है लेकिन एक घटक के लिए एक ही काम करता है:

अंत में मैं चेकबॉक्स घटक के लोड घटना के लिए suscribing सही का निशान में कामयाब रहे।

आपकी मदद के लिए धन्यवाद !!

2

के साथ प्रयास करें,

field.prop("checked",false); 

field.is(':checked') ठीक काम कर रहा है और अगर आप की जरूरत है, तो आप that.anyway के बजाय prop('checked') उपयोग कर सकते हैं अपने jQuery संस्करण 1.6 या उच्चतर आप प्रोप उपयोग करने के लिए जा रहे हैं सुनिश्चित करें कि()

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

  • कोई संबंधित समस्या नहीं^_^