简而言之,如果用户对单选按钮选择yes,我将尝试从input
获取data-name
属性,并将其推送到名为accepted_array
的数组中。
如果用户选择no
,则将data-name
存储到declined_array
。
下面是一个可视化的标记:
<div class="guest__options-group">
<input id="attending-yes-0" type="radio" name="attendance-0" value="yes" data-name="John" required />
<label for="attending-yes-0">Yes</label>
</div>
<div class="guest__options-group">
<input id="attending-no-0" type="radio" name="attendance-0" value="no" data-name="John" required />
<label for="attending-no-0">No</label>
</div>
<!-- options for Alex -->
<div class="guest__options-group">
<input id="attending-yes-1" type="radio" name="attendance-1" value="yes" data-name="Alex" required />
<label for="attending-yes-1">Yes</label>
</div>
<div class="guest__options-group">
<input id="attending-no-1" type="radio" name="attendance-1" value="no" data-name="Alex" required />
<label for="attending-no-1">No</label>
</div>
以下是我尝试过的两种方法:
第一个方法。
(function ($) {
$( ".guest__attendance-input" ).each(function(index) {
$(this).on("click", function(){
var $this = $(this);
var checkedVal = $this.val();
var accepted_array = [];
var declined_array = [];
if( checkedVal == "yes" ) {
var name = $this.data("name");
accepted_array.push(name);
} else {
declined_array.push(name);
}
console.log("accepted " + accepted_array.join(","));
console.log("declined " + accepted_array.join(","));
});
});
}) (jQuery);
这只对选定的用户执行,并将名称添加到两个数组中。
第二种方法。
(function ($) {
$( ".guest__attendance-input" ).each(function(index) {
$(this).on("click", function(){
var $this = $(this);
var data = [];
var checked = $this.is(':checked');
var name = $this.attr('data-name');
if (checked) {
if (!data[name]) {
data[name] = []
}
data[name].push($this.val())
}
console.log(data);
});
});
}) (jQuery);
它只将用户添加到单个阵列。
如果两个人都选择yes,我需要在accepted_array
中使用这两个名称。如果有人一开始选择yes,然后选择no,我需要从accepted_array
中删除它们,反之亦然。
1条答案
按热度按时间ecbunoof1#
如果某人最初选择yes,然后选择no,反之亦然,则可以将
splice
与inArray
一起使用,从数组中删除值。示例:
第一个