Javascript 使用IF重复代码
单击单选按钮时,按钮上的文本会发生变化。但是,当我点击两次按钮时,文本不再显示。我想要一些循环/重复代码,当我多次点击单选按钮时,按钮上的文本总是出现。要帮忙吗 HTMLJavascript 使用IF重复代码,javascript,twitter-bootstrap,if-statement,radio-button,navbar,Javascript,Twitter Bootstrap,If Statement,Radio Button,Navbar,单击单选按钮时,按钮上的文本会发生变化。但是,当我点击两次按钮时,文本不再显示。我想要一些循环/重复代码,当我多次点击单选按钮时,按钮上的文本总是出现。要帮忙吗 HTML <nav class="navbar2 navbar-expand-sm navbar-dark fixed-bottom"> <div id="navbarbackground" class="container-fluid"> <div class="n
<nav class="navbar2 navbar-expand-sm navbar-dark fixed-bottom">
<div id="navbarbackground" class="container-fluid">
<div class="navbar" id="nav-content">
<label class="labl icon-package-flat">
<input type="radio" onclick="window.location='#formulario';" id="radioInfo" name="radioname" value="Submeter pedido de Informação geral" checked="checked" />
<div class="text"><center class="iconcenter"><i class="icon icon-info"></i></center>Informação geral</div>
</label>
<label class="labl icon-package-flat">
<a href="#formulario"></a>
<input type="radio" onclick="window.location='#formulario';" id="radioTestDrive" name="radioname" value="Submeter pedido de Test drive" />
<div class="text"><center class="iconcenter2"><i class="icon icon-test_drive"></i></center>Test drive</div>
</label>
<label class="labl icon-package-flat">
<input type="radio" onclick="window.location='#formulario';" id="radioFinancing" name="radioname" value="Submeter pedido de Financiamento" />
<div class="text"><center class="iconcenter2"><i class="icon icon-calculator"></i></center>Financiamento</div>
</label>
<label class="labl icon-package-flat">
<input type="radio" onclick="window.location='#formulario';" id="radioCatalog" name="radioname" value="Submeter pedido de Catálogo" />
<div class="text"><center class="iconcenter2"><i class="icon icon-printed"></i></center>Catálogo</div>
</label>
</div>
</div>
</nav>
谢谢大家! 您正在从
$(this).attr('data-value')
获取值,它不会返回您想要的内容。然后再次将其设置为该值。它正在清除radiobutton值
另外,您不需要在radiobutton值和JS代码中指定它的文本。这是不明确的,可能会导致维护问题
糟糕的解决方案
您只需更改该行即可使其正常工作:
发件人:
var val=$(this.attr('data-value')代码>
致:
var val=$(this.val()代码>
建议的解决方案
尝试替换整个。单击()
$("[name='radioname']").click(function () {
$(this).parent().find('.radio').removeClass('selected');
$(this).addClass('selected');
$("#lblOpcao").text($(this).val());
});
我删除了一些无用的逻辑。您正在检查radiobutton id以设置lblOpcao上的特定文本,但未使用它。您总是使用.val()
文本覆盖它。您还将radiobutton值设置为相同的值。非常感谢您的关注。我能够用这个解决方案解决这个问题:)如果这对你有帮助,请将它标记为:D
$("[name='radioname']").click(function () {
$(this).parent().find('.radio').removeClass('selected');
$(this).addClass('selected');
var val = $(this).attr('data-value');
if ($(this).id == "radioInfo") {
$("#lblOpcao").text("Submeter pedido de Informação geral");
}
if ($(this).id == "radioFinancing") {
$("#lblOpcao").text("Submeter pedido de financiamento");
}
if ($(this).id == "radioTestDrive") {
$("#lblOpcao").text("Submeter pedido de Test drive");
}
if ($(this).id == "radioCatalog") {
$("#lblOpcao").text("Submeter pedido de Catálogo");
}
$("#lblOpcao").text($(this).val());
//alert(val);
$(this).parent().find('input').val(val);
});
function toggle(button) { if (radio.value == "OFF") { radio.value = "ON"; } else { radio.value = "OFF"; } }
$("[name='radioname']").click(function () {
$(this).parent().find('.radio').removeClass('selected');
$(this).addClass('selected');
$("#lblOpcao").text($(this).val());
});