【问题标题】:Checkbox.Ischecked always gives falseCheckbox.Ischecked 总是给出 false
【发布时间】:2017-08-26 08:10:58
【问题描述】:

我的复选框总是返回 false。谁能帮帮我。这是我的 html div。

<div class="large-12 columns">
    <label for="Data_AlternatePhones[i]_IsPrimary">
        <input class="toggle_enabled hidden-field" id="Data_AlternatePhones[i]_IsPrimary" name="Data.AlternatePhones[i].IsPrimary" value="true" type="checkbox">
        <span class="custom checkbox"></span>
        <input name="Data.AlternatePhones[i].IsPrimary" value="false" type="hidden">IsPrimary
    </label>
</div>

勾选复选框后,页面检查器代码显示如下html sn-p

<div class="large-12 columns">
    <label for="Data_AlternatePhones[i]_IsPrimary">
        <input class="toggle_enabled hidden-field" id="Data_AlternatePhones[i]_IsPrimary" name="Data.AlternatePhones[i].IsPrimary" value="true" type="checkbox">
        <span class="custom checkbox checked"></span>
        <input name="Data.AlternatePhones[i].IsPrimary" value="false" type="hidden">IsPrimary
    </label>
</div>

当复选框未被选中时,页面检查器代码显示以下 html sn-p

<div class="large-12 columns">
    <label for="Data_AlternatePhones[i]_IsPrimary">
        <input class="toggle_enabled hidden-field" id="Data_AlternatePhones[i]_IsPrimary" name="Data.AlternatePhones[i].IsPrimary" value="true" type="checkbox">
        <span class="custom checkbox"></span>
        <input name="Data.AlternatePhones[i].IsPrimary" value="false" type="hidden">IsPrimary
   </label>
</div>

我在 jQuery 代码中的数据变量在这两种情况下都给出 isPrimary = false。

var data =
    {
        customerGuid: $("#Data_CustomerGuid").val(),
        contactInfoType: type,
        contactInfo: $("#Data_AlternatePhones_"+i+"__PhoneNumber").val(),
                isPrimary: $("#Data_AlternatePhones_" + i + "__IsPrimary").is(':checked'), 
    isPrimaryTest: $("#Data_AlternatePhones[" + i + "]_IsPrimary > span").is(':checked'),                  
        contactInfoID: $("#Data_AlternatePhones_"+i+"__ID").val()
    };

Image of the data i get in the developer tool

请帮我解决这个问题。 谢谢。

这是我在我的 cshtml 文件中的实际标记。

     @if (Model.Data.AlternatePhones.Count > 0)
        {
            for (int i = 0; i < Model.Data.AlternatePhones.Take(2).Count(); i++)
            {
                <div style="float:right">
                    <a data-reveal-id="divFirstSetEditAlternatePhoneNumber@(i)" class="fa fa-pencil-square-o" data-i="@i" data-contactinfotype="phone" ></a>
                    <a class="fa fa-trash-o deletecontactinfo" data-customer-id="@Model.Data.CustomerGuid" data-info="@Model.Data.AlternatePhones[i].PhoneNumber" data-contactinfotype="phone"></a>
                </div>
                <div>
                    @Model.Data.AlternatePhones[i].PhoneNumber                        
                    @if (Model.Data.AlternatePhones[i].IsVerified)
                    {
                        <div class="fa fa-user"><span class="verified">Verified Customer</span></div><br />
                    }
                </div>
                <br />
                <div id="divFirstSetEditAlternatePhoneNumber@(i)" class="reveal-modal tiny" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog">
                    <div class="form custom med-6 columns popupModal">
                        <h2>
                            Edit Phone Number
                        </h2>
                        <form>
                            @Html.HiddenFor(x => Model.Data.CustomerGuid)
                            @Html.HiddenFor(x => Model.Data.AlternatePhones[i].ID)
                            <div class="row">
                                <div class="large-12 columns">
                                    @Html.WrappedTextBoxFor(x => Model.Data.AlternatePhones[i].PhoneNumber, htmlAttributes: new { @class = "toggle_enabled" })
                                </div>
                            </div>
                            <div class="row">
                                <div class="large-12 columns">
                                    @*@Html.WrappedCheckBoxFor(x => Model.Data.AlternatePhones[i].IsPrimary, htmlAttributes: new { @class = "toggle_enabled" })*@

                                    <label for="Data_AlternatePhones[i]_IsPrimary">
                                        <input class="toggle_enabled hidden-field" id="Data_AlternatePhones[i]_IsPrimary" name="Data.AlternatePhones[i].IsPrimary" value="true" type="checkbox">
                                        <span class="custom checkbox"></span>
                                        <input name="Data.AlternatePhones[i].IsPrimary" value="false" type="hidden">IsPrimary
                                    </label>

                                </div>
                            </div>
                            <div class="row">
                                <div class="large-12 columns">
                                    <input type="button" class="btnEditAlternatePhoneNumber button toggle_enabled" value="Save" />
                                    <button class="btnCloseEditAlternatePhoneNumber button toggle_enabled closediv">Cancel</button>
                                </div>
                                <a class="close-reveal-modal toggle_enabled">&#215;</a>
                            </div>


                        </form>
                    </div>
                </div>
            }
        }

【问题讨论】:

  • 但我得到了其他属性(如 customerGuid 和 contactInfo)的正确数据。只有复选框是错误的
  • 那么您能否向我们展示实际的标记,因为您向我们展示的内容与这些选择器中的任何一个都不匹配。
  • 你从哪里得到变量i?另外,如果这是一个循环,您是否打算覆盖数据对象?
  • 这是我的 cshtml 文件中的实际标记。

标签: jquery html checkbox


【解决方案1】:

您的输入元素未正确关闭。关闭输入标签。 将 / 添加到输入元素的末尾

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2015-07-16
    • 2016-04-27
    相关资源
    最近更新 更多