2011-11-28 182 views
0

我的html和jQuery代码在这里。如果以123结尾的值指定div,则jquery代码将执行。但我在这里遇到了问题。当我点击值c123和d123并切换回a和b单选按钮。显示div不会消失。如何解决这个问题?Jquery单选按钮显示和隐藏div

<input type="radio" value="a" /> 
<input type="radio" value="b" /> 
<input type="radio" value="c123" /> 
<input type="radio" value="d123" /> 



<ul id="localBankc123" class="localBank"> 
    <li>Maybank</li> 
</ul> 
<ul id="localBankd123" class="localBank"> 
<li>CIMB Bank</li> 
</ul> 

$(".localBank").hide(); 
$("input[value$='123']").click(function() { 
var bank = $(this).val(); 
     $(".localBank").hide(); 
     $("#localBank"+bank).show(); 
    }); 
+1

请'.localBank'下面的div – socha23

+1

这些问题的答案粘贴HTML都不错,但我也建议绑定到change()事件而不是点击事件 - 这样如果用户点击收音机,您不会重新执行代码已被选中的按钮。例如$('selector')。change(function(e){}); – jammypeach

+0

我正在考虑使用更改,但是我看到很多回复评论,指出更改在多个浏览器中不起作用。真的吗? – vzhen

回答

1

如果你发布HTML的部分与.localBank的东西会更好。

但是,如果我已经正确理解您的问题,它不会隐藏您的div,因为处理程序不会被调用(input确实没有以123结尾的值)。

您可以将处理程序附加到所有input s,然后在处理程序内部,仅当点击的input的值以123结尾时才显示div。

事情是这样的:

$(".localBank").hide(); 
$("input").click(function() { 
    var bank = $(this).val(); 
    $(".localBank").hide(); 
    if (bank.indexOf(/123$/) { 
    $("#localBank"+bank).show(); 
    } 
}); 
0
$(".localBank").hide(); 
$("input").click(function() { 
    var bank = $(this).val(); 
    if (bank.indexOf("123") > -1){ 
    $("#localBank"+bank).show(); 
    }else{ 
    $(".localBank").hide(); 
    } 
}); 
0

请试试这个代码..

$(".localBank").hide(); 
 
$("input").click(function() { 
 
    var bank = $(this).val(); 
 
    $(".localBank").hide(); 
 
    $("#localBank"+bank).show(); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<input type="radio" name="bank" value="a" /> 
 
<input type="radio" name="bank" value="b" /> 
 
<input type="radio" name="bank" value="c123" /> 
 
<input type="radio" name="bank" value="d123" /> 
 
    
 

 
<ul id="localBankc123" class="localBank"> 
 
    <li>Maybank</li> 
 
</ul> 
 
<ul id="localBankd123" class="localBank"> 
 
<li>CIMB Bank</li> 
 
</ul>