【问题标题】:Best Way for Getting Value from a Clicked Checkbox, with JQuery使用 JQuery 从单击的复选框中获取价值的最佳方式
【发布时间】:2013-12-03 20:22:46
【问题描述】:

全部,

这是获取当前选中/未选中复选框值的最佳方法吗?

复选框的数量是任意的,所以我需要一种方法来获取选中或未选中的复选框的值。

通过查看 Firebug,我发现:

this.defaultValue

我可以获得当前选中/未选中复选框的值,但不确定这是否真的是最好的方法。

这里是 HTML,下面是 Javascript 点击处理程序

    <div id="ClubSponsorshipPartial">
 <table class="table-grid">
  <tr>
      <td> 
           <input type="checkbox" value="000000244187" id="slpBackgroundCheck" name="slpBackgroundCheck"> Person #1
           <input type="checkbox" value="000000533796" id="slpBackgroundCheck" name="slpBackgroundCheck"> Person #2
           <input type="checkbox" value="000000533796" id="slpBackgroundCheck" name="slpBackgroundCheck"> Person #3
       </td>
     </tr>
   </table>
 </div>





     <script type="text/javascript">
 $(document).ready(function () {
  $("#ClubSponsorshipPartial input[type=checkbox]").click(function (e) {
    var queryStr = '';
    var clubKeyNumber = '';
    var receivedBackgroundCheckChecked = false;

    var memberId = this.defaultValue
    clubKeyNumber = 'K06253';
    receivedBackgroundCheckChecked = ($("#ClubSponsorshipPartial input[type=checkbox]").is(":checked") ? "true" : "false");
    queryStr = "memberId=" + memberId + "&isChecked=" + receivedBackgroundCheckChecked;
    $.ajax({
            type: "POST",
            url: '/Dashboard/BackgroundCheck',
            data: queryStr,
            datatype: 'json',
            success: function (data) {
            $.notification({
                content: 'SLP Advisor Background Check status saved.',
                error: false,
                timeout: 5000
            });
            },
            failure: function (data) {
            $.notification({
                content: 'Error saving SLP Advisor Background Check status.',
                error: true,
                timeout: 5000
            });
            },
            timeout: 5000
        });
        });
});
</script>

【问题讨论】:

  • 第一。您有 3 个带有此 ID 的“slpBackgroundCheck”...仅设置相同的名称
  • 第二。您可以通过 $('[name=slpBackgroundCheck]') 更改 $("#slpBackgroundCheck") ... 或在每个复选框上设置一个类并使用 $('.yourChkClass') ...
  • 处理完 ID 问题后,将 $("#slpBackgroundCheck") 替换为 $(this) 以确保您处理的是被点击的复选框。

标签: ajax jquery checkbox


【解决方案1】:

id在你的页面文档中应该是唯一的,你应该使用$(this)来映射当前的DOM,你可以试试下面的代码,可能会有所帮助;

http://jsfiddle.net/kJQr9/

【讨论】:

    猜你喜欢
    • 2014-05-03
    • 2011-11-22
    • 1970-01-01
    • 2013-11-14
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多