2017-05-15 61 views
1

附加在HTML &以下JS。需要逻辑。根据勾选的复选框更改HREF值

  1. 如果 'RT-检查 - 一个' 或 'RT-检查 - 一个& RT-检查 - 两个' 或 'RT-检查 - 一个或RT-检查 - 三' 检查,变化如果'rt-check-two'或'rt-check-two-rt-check-three'被检查,则改变href ='#/ Test2'
  2. 如果检查'rt-check-three',请更改href ='#/ Test3'

请给我一个根据所需逻辑改变href的解决方案。

感谢

HTML:

<input type="checkbox" class="js-check" id="rt-check--one" name="rt-check"> Test element 1 
<input type="checkbox" class="js-check" id="rt-check--two" name="rt-check"> Test element 2 
<input type="checkbox" class="js-check" id="rt-check--three" name="rt-check"> Test element 3 

<a tabindex="33" href="#/Test1" class="rt-button js-button--down">Next</a> 

JS:

$('#rt-check--one').change(function(){ 
    if(($('#rt-check--one').is(':checked')) || ($('#rt-check--one').is(':checked') && $('#rt-check--two').is(':checked')) || ($('#rt-check--one').is(':checked') && $('#rt-check--three').is(':checked'))){ 
     $('a').attr("href", "#/Test1"); 
    } else{ 
     $('a').attr("href", "#/Test1"); 
    } 
}); 

$('#rt-check--two').change(function(){ 
    if(($('#rt-check--two').is(':checked')) || ($('#rt-check--two').is(':checked') && $('#rt-check--three').is(':checked'))){ 
     $('a').attr("href", "#/Test2"); 
    } else{ 
     $('a').attr("href", "#/Test2"); 
    } 
}); 
+0

现在正在为你我所提出的解决方案? –

+0

本网站不是免费的编码服务。 –

回答

0

正如@Mark提到,最好在你的情况是使用data-* attribute

然后基于第一:checked复选框更新href

$(".js-check").change(function() { 
 
    var href = $(".js-check:checked").first().attr("data-url") || 'Test1'; 
 
    $("a").attr('href', href) 
 
     // FOR DEMO: 
 
     .text(href); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="checkbox" class="js-check" id="rt-check--one" name="rt-check" data-url="Test1"> Test element 1 
 
<input type="checkbox" class="js-check" id="rt-check--two" name="rt-check" data-url="Test2"> Test element 2 
 
<input type="checkbox" class="js-check" id="rt-check--three" name="rt-check" data-url="Test3"> Test element 3 
 
<p> 
 
    <a tabindex="33" href="#/Test1" class="rt-button js-button--down">Next</a> 
 
</p>

2

我会做这样的事情:

<input type="checkbox" class="js-check" data-href=""> Test element 1 
<input type="checkbox" class="js-check" data-href=""> Test element 2 
<input type="checkbox" class="js-check" data-href=""> Test element 3 

JS:

$(".js-check").on("change", function() { 
    if ($(this).prop("checked")) 
    { 
     $("a").attr("href", $(this).data("href")) 
    } 
    }) 
+0

你可能想要使用单选按钮? –

0

您可以将名称更改为rt-check-1rt-check-2等,如果选中这样的验证 - $('input[name="rt-check-1"]:checked')