【问题标题】:Detect whether a checkbox is checked or not in asp.net and javascript在 asp.net 和 javascript 中检测复选框是否被选中
【发布时间】:2017-11-15 06:02:21
【问题描述】:

我在 asp:Panel 中有一个 CheckBox 控件,如下所示:

<asp:Panel ID="chk" runat="server" Visible="false" CssClass="checkbox checkbox-primary checkbox-single">
    <asp:CheckBox runat="server" ID="valCheck" />
</asp:Panel>

我需要能够检查这个 CheckBox 是否被选中,然后我会将 0 或 1 发送到一个函数,该函数将做更多的事情,当返回时基于该值,如果它大于 0它将显示一个选中的复选框。我需要使用这个值,因为我还有一些其他类型的输入,我根据从另一个调用返回的值设置它们的值。

var checking = false;
function saveCheckBoxData(obj, id, inputType) {
    if (checking) return;
    checking = true;
    var date = $("#MainContent_date").val();
    var column = $(obj).attr("column");
    var dataFieldId = $(obj).attr("dataFieldId ");
    var shift = $(obj).attr("shift");
    var val = 0;
    //if ($("#valCheck").is(':checked')) {
    //    val = 1;
    //}
    //if ($('#valCheck').prop('checked')) {
    //    val = 1;
    //}
    //if ($('#valCheck').attr("checked")) {
    //    val = 1;
    //}
    SaveInput(dataFieldId , shift, inputType, date, column, id, val);
}

当我调用 SaveInput 函数时,我需要传递 0(如果未选中复选框)或 1(选中复选框)。我注释掉的行不起作用!

任何反馈将不胜感激!

【问题讨论】:

  • 在浏览器中检查您的#valCheckid 具有相同的checkbox
  • 如果你在同一个aspx页面中写过js代码,试试$('&lt;%=valCheck.ClientID %&gt;').is(':checked')
  • 我认为 asp.net 在将页面发送到浏览器时会更改 id,因此请在您的复选框字段中使用 ClientIDMode="static" 然后尝试。
  • @Prashant Shirke 我的 js 代码在不同的文件中!

标签: javascript jquery asp.net checkbox


【解决方案1】:

id 不完全是valCheck 当你使用runat="server"元素id 发生变化(检查元素以查看新id),那么你需要使用jquery 选择器,如:

$("select[id*='valCheck']")

$("select[id$='valCheck']")

或者您可以简单地在您的 asp 元素中添加 attr ClientIdMode="Static"

<asp:CheckBox runat="server" ID="valCheck" ClientIdMode="Static" />

如果您想了解它发生的原因,请查看article

【讨论】:

  • 感谢您的回答。 ClientIdMode="Static" 在我的情况下不起作用,它会破坏我的复选框的外观!我每一页都有多个复选框,所以我需要不断检查复选框的状态。 $("select[id*='valCheck']") 将帮助我查看此输入是否为复选框,现在我需要检查每个复选框的选中/未选中。这需要循环吗?
  • @zezz 不客气,大多数时候我也使用 jquery 选择器。
  • 抱歉,我编辑了我的第一条评论,我想我会向您发送通知以防您错过!
  • @zezz 你可以使用 jquery 的.each,通过所有的复选框:$('input[type=checkbox]').each(function () { if (this.checked){...}});
  • var val; $('input[type=checkbox]').each(function () { if (this.checked) { val = 1; } else val = 0; }) 它总是返回 true (val = 1),即使我取消选中复选框!
【解决方案2】:

在纯javascript中

 var isChecked= document.getElementById("myCheck").checked;

isChecked 如果选中则为 true,如果未选中则为 false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2015-12-28
    相关资源
    最近更新 更多