2011-08-31 13 views
8

के लिए वहाँ asp.net/jquery का उपयोग कर एक div दृश्यता टॉगल करने के लिए जब इस तरह एक चेकबॉक्स का उपयोग कर एक रास्ता है , लेकिन मुझे यकीन नहीं है कि यह निर्धारित करने के लिए कि बॉक्स को क्लिक या बदल दिया गया है या नहीं। क्या कुछ प्रकार का ऑन चेंज या ऑनक्लिक मैं इसमें जोड़ सकता हूं?jQuery चयनकर्ता "Html.CheckBoxFor"

संपादित करें - मुझे इसे थोड़ा सा बदलने दें ... मैं HTML को एक आईडी कैसे निर्दिष्ट कर सकता हूं। चेकबॉक्स फोर() ??

+1

मुझे लगता है कि चेकबॉक्स का आईडी स्वचालित रूप से वस्तु संपत्ति इसके लिए बनाया गया है करने के लिए स्थापित किया जाएगा। तो ऊपर दिए गए उदाहरण में यह 'id = "टाइप"' होगा। आप हमेशा अपने कोड को दोबारा जांचने के लिए मार्क-अप पर एक नज़र डाल सकते हैं। – ipr101

उत्तर

17

आप .change() घटना और .toggle() div कि क्या चेकबॉक्स चेक किया गया है या नहीं के आधार पर की दृश्यता के लिए सदस्यता ले सकता है:

$(function() { 
    $('#mycheckbox').change(function() { 
     var isChecked = $(this).is(':checked'); 
     $('#someDivId').toggle(isChecked); 
    }); 
}); 

और तुम see it in action here कर सकते हैं।

इस चेकबॉक्स को आप या तो कर सकते थे की पहचान यह एक विशिष्ट आईडी सौंपने के लिए:

<%: Html.CheckBoxFor(m => m.Type, new { id = "mycheckbox" }) %> 

या एक वर्ग:

<%: Html.CheckBoxFor(m => m.Type, new { @class = "check" }) %> 

और फिर अपने jQuery चयनकर्ता अनुकूलन।

+0

मेरा मतलब था कि मैं चेकबॉक्स में आईडी कैसे निर्दिष्ट कर सकता हूं? मैं ASP.Net में CheckBoxFor का उपयोग कर रहा हूं और मुझे यकीन है कि आईडी कैसे सेट करें। – Cody

+1

@ डॉक्टर ओरेओ, डिफ़ॉल्ट रूप से Html.CheckBoxFor सहायक एक आईडी असाइन करता है। यह आपके दृश्य मॉडल ऑब्जेक्ट पदानुक्रम में लैम्ब्डा अभिव्यक्ति से अनुमानित किया जाएगा। तो अगर हम स्तर 0 पर हैं, तो यह 'id =" टाइप "' होगा। मेरे अपडेट किए गए उत्तर में दिखाए गए अनुसार आप चेकबॉक्स फॉर हेल्पर के उचित अधिभार का उपयोग कर इसे अनुकूलित कर सकते हैं। –

+0

किसी कारण से, मुझे बॉक्स को चेक करना होगा और फ़ंक्शन() पंजीकरण के लिए इसे अनचेक करना होगा। – Cody

0

हां, अधिकांश HTML तत्वों के लिए एक ऑनक्लिक/ऑनचेंज ईवेंट है।

चलो अपने चेकबॉक्स मान एक आईडी = "checkbox1", आप कर सकते हैं निम्नलिखित

var myCheckBox = document.getElementById("checkbox1"); 
myCheckBox.addEventListener('change', function(){do something}, false); 
+0

मेरा मतलब था कि मैं चेकबॉक्स में आईडी कैसे निर्दिष्ट कर सकता हूं? मैं ASP.Net में CheckBoxFor का उपयोग कर रहा हूं और मुझे यकीन है कि आईडी कैसे सेट करें। – Cody

0

इस सवाल देखें हैं:

मैं इस सहायक का उपयोग करें::

get the generated clientid for a form field, यह मेरा जवाब है
public static partial class HtmlExtensions 
{ 
    public static MvcHtmlString ClientIdFor<TModel, TProperty>(
     this HtmlHelper<TModel> htmlHelper, 
     Expression<Func<TModel, TProperty>> expression) 
    { 
     return MvcHtmlString.Create(
       htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(
        ExpressionHelper.GetExpressionText(expression))); 
    } 
} 

बस के रूप में इसका इस्तेमाल आप किसी भी अन्य सहायक: @ Html.ClientIdFor (मॉडल => model.client.email)

या लिपि में:

$(function() { 
    $('#@Html.ClientIdFor(m=>m.Type)').change(function() { 
     // Do stuff 
    }); 
}); 
संबंधित मुद्दे