Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You don't jQuery to solve this problem. If you wrap the input with a label you get the same behavior.</p> <p>By the way, another option, instead of a editor template, is a HTML Helper. Take a look at this:</p> <pre><code>public static class HtmlHelperExtensions { #region CheckBoxList public static MvcHtmlString CheckBoxList(this HtmlHelper htmlHelper, string name, List&lt;SelectListItem&gt; listInfo) { return htmlHelper.CheckBoxList(name, listInfo, ((IDictionary&lt;string, object&gt;)null)); } public static MvcHtmlString CheckBoxList(this HtmlHelper htmlHelper, string name, List&lt;SelectListItem&gt; listInfo, object htmlAttributes) { return htmlHelper.CheckBoxList(name, listInfo, ((IDictionary&lt;string, object&gt;)new RouteValueDictionary(htmlAttributes))); } public static MvcHtmlString CheckBoxList(this HtmlHelper htmlHelper, string name, List&lt;SelectListItem&gt; selectListItems, IDictionary&lt;string, object&gt; htmlAttributes) { // Verify arguments if (String.IsNullOrEmpty(name)) throw new ArgumentNullException("name", "Name cannot be null"); if (selectListItems == null) throw new ArgumentNullException("selectList", "Select list cannot be null"); if (selectListItems.Count() &lt; 1) throw new ArgumentException("Select list must contain at least one value", "selectList"); // Define items StringBuilder items = new StringBuilder(); int index = 0; // Loop through items) foreach (SelectListItem i in selectListItems) { // hidden value TagBuilder hiddenValue = new TagBuilder("input"); hiddenValue.MergeAttribute("type", "hidden"); hiddenValue.MergeAttribute("value", i.Value); hiddenValue.MergeAttribute("id", string.Format("{0}_{1}__Value", name, index)); hiddenValue.MergeAttribute("name", string.Format("{0}[{1}].Value", name, index)); // check box TagBuilder checkbox = new TagBuilder("input"); if (i.Selected) checkbox.MergeAttribute("checked", "checked"); checkbox.MergeAttribute("id", string.Format("{0}_{1}__Selected", name, index)); checkbox.MergeAttribute("name", string.Format("{0}[{1}].Selected", name, index)); checkbox.MergeAttribute("type", "checkbox"); checkbox.MergeAttribute("value", "true"); // wrapper label TagBuilder wrapperLabel = new TagBuilder("label"); wrapperLabel.InnerHtml = checkbox.ToString(TagRenderMode.SelfClosing); wrapperLabel.InnerHtml += i.Text; // hidden selected TagBuilder hiddenSelected = new TagBuilder("input"); hiddenSelected.MergeAttribute("type", "hidden"); hiddenSelected.MergeAttribute("value", i.Selected.ToString().ToLower()); hiddenSelected.MergeAttribute("name", string.Format("{0}[{1}].Selected", name, index)); // label for checkbox TagBuilder checkBoxLabel = new TagBuilder("label"); checkBoxLabel.MergeAttribute("for", checkbox.Attributes["id"]); checkBoxLabel.MergeAttribute("id", string.Format("{0}_{1}__Text", name, index)); checkBoxLabel.MergeAttribute("name", string.Format("{0}[{1}].Text", name, index)); // hidden text TagBuilder hiddenText = new TagBuilder("input"); hiddenText.MergeAttribute("type", "hidden"); hiddenText.MergeAttribute("value", i.Text); hiddenText.MergeAttribute("id", string.Format("{0}_{1}__Text", name, index)); hiddenText.MergeAttribute("name", string.Format("{0}[{1}].Text", name, index)); // Add item items.AppendLine(hiddenValue.ToString(TagRenderMode.SelfClosing)); items.AppendLine(wrapperLabel.ToString(TagRenderMode.Normal)); items.Append(hiddenSelected.ToString(TagRenderMode.SelfClosing)); items.AppendLine(hiddenText.ToString(TagRenderMode.SelfClosing)); items.AppendLine(); index++; } return MvcHtmlString.Create(items.ToString()); } public static MvcHtmlString CheckBoxListFor&lt;TModel, TProperty&gt;(this HtmlHelper&lt;TModel&gt; htmlHelper, Expression&lt;Func&lt;TModel, TProperty&gt;&gt; expression) { var name = ExpressionHelper.GetExpressionText(expression); var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); return CheckBoxList(htmlHelper, name, metadata.Model as List&lt;SelectListItem&gt;); } #endregion } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload