Javascript 在收音机和select之间同步当前选定项目
短版Javascript 在收音机和select之间同步当前选定项目,javascript,jquery,Javascript,Jquery,短版 我有两张表格。一个带有单选按钮,一个带有下拉菜单(选择)。 两者结构相同。例如,如果单选按钮的值发生变化,则下拉对应项应更改为相同的值 限制: 每个收音机和select的ID和name属性都是随机的。后端将生成一些随机值。所以我不能使用它们。混乱,我知道。但我不能改变这一点。 唯一不变的是CSS类 这是我已经得到的: 我给每一个选择和每一个单选按钮一个类来清除值: // All Mobile Selects var $mobRechnung = $mobile.find('.js-noti
我有两张表格。一个带有单选按钮,一个带有下拉菜单(选择)。
两者结构相同。例如,如果单选按钮的值发生变化,则下拉对应项应更改为相同的值 限制:
每个收音机和select的ID和
name
属性都是随机的。后端将生成一些随机值。所以我不能使用它们。混乱,我知道。但我不能改变这一点。唯一不变的是CSS类 这是我已经得到的:
我给每一个选择和每一个单选按钮一个类来清除值:
// All Mobile Selects
var $mobRechnung = $mobile.find('.js-notification-set--rechnung'),
$mobJahr = $mobile.find('.js-notification-set--jahr'),
$mobMonat = $mobile.find('.js-notification-set--monat'),
$mobErinnerung = $mobile.find('.js-notification-set--erinnerung');
// All Desktop Radios
var $deskRechnungBrief = $desktop.find('js-notification-set--rechnung-brief'),
$deskRechnungMail = $desktop.find('js-notification-set--rechnung-mail'),
$deskJahrBrief = $desktop.find('js-notification-set--jahr-brief'),
$deskJahrMail = $desktop.find('js-notification-set--jahr-mail'),
$deskJahrNo = $desktop.find('js-notification-set--jahr-no'),
$deskMonatMail = $desktop.find('js-notification-set--monat-mail'),
$deskMonatSMS = $desktop.find('js-notification-set--monat-sms'),
$deskMonatNo = $desktop.find('js-notification-set--monat-no'),
$deskErinnerungMail = $desktop.find('js-notification-set--erinnerung-mail'),
$deskErinnerungSMS = $desktop.find('js-notification-set--erinnerung-sms'),
$deskErinnerungNo = $desktop.find('js-notification-set--erinnerung-no');
如您所见,我无法组合单选按钮,因为我无法使用它们的名称
。所以我需要给每个值一个单独的类来分隔它们
然后我想我把它们放在数组中,并用jQuery.map()
对它们进行循环,但现在我被卡住了。我不知道我应该如何继续写一本没有代码的小说
如果您需要更多代码,请告诉我
编辑HTML标记:桌面代码示例。每一行都是一样的
<div class="js-notification-set--desk>
{# Rechnung Row #}
<div class="row">
<fieldset>
<legend class="col-sm-3">Rechnung</legend>
{# Brief Radio #}
<div class="mod-formelem col-sm-1">
<input type="radio" id="__radio1__" name="__row1__" class="js-notification-set--rechnung-brief" aria-labelledby="__sr01__"/>
<label for="__radio1__" class="mod-formelem--icon" aria-hidden="true"></label>
</div>
{# E-Mail Radio #}
<div class="mod-formelem col-sm-1">
<input type="radio" id="__radio2__" name="__row1__" class="js-notification-set--rechnung-mail" checked="checked"
aria-labelledby="__sr02__"/>
<label for="__radio2__" class="mod-formelem--icon" aria-hidden="true"></label>
</div>
</fieldset>
</div>
(...)
</div>
使用单选按钮的索引选择
中的相应选项
使用单选按钮的索引选择
中的相应选项
共享示例html标记also@ArunPJohny:完成。希望足够了。使用单选按钮的索引,然后在相应的选择中选择具有相同索引的选项。您可以共享生成的html而不是template@ArunPJohny字体看起来一样。不会替换ID和名称,因为我在开发时不连接后端。因此,最终的HTML看起来是一样的,只是ID和名称非常难看。共享一个HTML标记示例also@ArunPJohny:完成。希望足够了。使用单选按钮的索引,然后在相应的选择中选择具有相同索引的选项。您可以共享生成的html而不是template@ArunPJohny字体看起来一样。不会替换ID和名称,因为我在开发时不连接后端。所以最终的HTML看起来是一样的,只是ID和名称非常难看。我认为这是正确的方法。所以
+1
&接受。可悲的是,它不会为我工作,因为我刚刚看到它是多么混乱,当我附加后端。所以现在这是一个完全不同的故事。但是谢谢你。我将使用你答案中的“核心逻辑”。我认为这是正确的做法。所以+1
&接受。可悲的是,它不会为我工作,因为我刚刚看到它是多么混乱,当我附加后端。所以现在这是一个完全不同的故事。但是谢谢你。我将使用你答案的“核心逻辑”。
<div class="js-notification-set--mob">
{# Rechnung Row #}
<div class="row">
<div class="col-sm-4">
<label for="___select1___" class="control-label">
Rechnung
</label>
</div>
<div class="col-sm-8 js-tooltip--container">
{# select1 #}
<select data-select-type="default" data-placeholder="Rechnung"
class="form-control js-select js-notification-set--rechnung" name="Rechnung" id="___select1___">
<option value="___select1_option1___">Brief</option>
<option value="___select1_option2___" selected>E-Mail</option>
</select>
</div>
</div>
(...)
</div>
$(".js-notification-set--desk :radio").click(function() {
var index = $(".js-notification-set--desk :radio").index(this);
$(".js-notification-set--rechnung").prop('selectedIndex', index);
});