编辑添加HTML:不完全相同,因为我不在我办公室了,但你会明白的。
该场景是我有一个网站的一部分,用户可以从中选择他们已保存的多个地址中的一个。为每个地址生成ID,我需要将该ID应用于按钮以提交表单。
我已经知道按钮会在第一次点击时收到ID,但如果我尝试选择其他地址,则ID不会切换。如何让按钮使用最近选择的无线电输入的ID?我正在使用数据属性来选择它。
HTML:
<div>
<form>
<input type="radio" data-js="select" id="Test123" /> (id created dynamically)
<label>Address 1</label>
<input type="radio" dat-js="select" id="Test124" /> (id created dynamically)
<label>Address 2</label>
</form>
</div>
<button class="address-continue">Continue</button>
var radioID = $('*[data-js]').attr('id');
var addrContinue = $('.address-continue');
$('*[data-js]').click(function () {
$(addrContinue).attr('id', radioID);
});
场景:用户点击地址1,因此ID被放置在地址1的按钮上。用户犯了一个错误,意味着点击地址2.目前当我点击地址2时,按钮上的ID没有更改。它与原始点击保持一致。
我需要继续按钮上的ID才能根据正确的无线电选择进行更改。
答案 0 :(得分:0)
以下内容应该为您希望相应的元素具有相同的顺序:
$('[data-js]').on('change',function() {
$('.address-continue').data('id', this.id);
});
$('.address-continue').on('click',function() {
alert( $(this).data('id') );
});
您不能在文档中为第二个元素指定另一个元素。 ID应该是唯一的;因此我使用了data-id
。
$('[data-js]').on('change',function() {
$('.address-continue').data('id', this.id);
});
$('.address-continue').on('click',function() {
alert( $(this).data('id') );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<form>
<input type="radio" name="address" data-js="select" id="Test123" /> (id created dynamically)
<label>Address 1</label>
<input type="radio" name="address" data-js="select" id="Test124" /> (id created dynamically)
<label>Address 2</label>
</form>
</div>
<button class="address-continue">Continue</button>
答案 1 :(得分:0)
由于id是唯一的使用类
$('*[data-js]').click(function () {
var addrButton = $('.address-continue');
addrButton.removeClass(test123);
addrButton.removeClass(test124);
radioID = $('*[data-js]').attr('id');
addrButton.addClass(radioID);
});
另外你的基本问题可能是因为你没有在你的收音机功能中收集你的radioID因此它没有更新所以试试这个
$('*[data-js]').click(function () {
var radioID = $('*[data-js]').attr('id');
$(addrContinue).attr('id', radioID);
});