【发布时间】: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)以确保您处理的是被点击的复选框。