繁体   English   中英

向按钮添加ID,但必须根据无线电输入选择进行更改

[英]Adding ID to button, but must change based on radio input selection

编辑以添加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才能根据正确的无线电选择进行更改。

为您希望相应的元素以相同的顺序执行以下操作:

$('[data-js]').on('change',function() {
  $('.address-continue').data('id', this.id);
});
$('.address-continue').on('click',function() {
  alert( $(this).data('id') );
});

您不能在文档中为另一个元素分配另一个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> 

由于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);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM