在jquery中使用无线电输入进行操作

时间:2010-11-11 23:43:53

标签: jquery

嘿伙计们我用jquery创建了一个表单,唯一的问题是在slideToggle函数中

jquery的

   $(".ChoosePayMethod").click(function(){
        var ID = $(this).attr("id");
    if ($('input[name=ChoosePayMethod]:checked')) {
        $("#PayMethod_"+ID).slideToggle("slow");

    }

HTML

<label><input type="radio" name="ChoosePayMethod" value="epay" id="epay" class="ChoosePayMethod"/>پرداخت آنلاین  توسط درگاه های اینترنتی </label><br />    
<label><input type="radio" name="ChoosePayMethod" value="bpay" id="bpay" class="ChoosePayMethod" />پرداخت به روش ارسال شماره فیش بانکی </label><br />
<label><input type="radio" name="ChoosePayMethod" value="cpay" id="cpay" class="ChoosePayMethod" />پرداخت به روش کارت به کارت و ثبت رسید</label><br />


    <div id="PayMethod_bpay" class="hidden" > soon </div>
    <div id="PayMethod_cpay" class="hidden" > soon </div>
    <div id="PayMethod_epay" class="hidden" > soon </div>

当我点击单选框时它会滑动,但问题是如何关闭其他打开的div框?

我需要这个,因为我点击一个无线电输入我有一个打开的div

3 个答案:

答案 0 :(得分:1)

   $(".ChoosePayMethod").click(function(){
     $("div[id*='PayMethod_']:visible").slideToggle("slow");
       var ID = $(this).attr("id");
       if (this.checked) {
         $("#PayMethod_"+ID).slideToggle("slow");
       }
   });

答案 1 :(得分:0)

您应该在所选div上调用slideDown(),在另外两个调用slideUp()

答案 2 :(得分:0)

pay-method-details等div添加一个类,然后执行

$('.pay-method-details').each(function() {
    $(this).hide();
});

在展示新的之前。您还可以跟踪当前选定的一个,然后单独关闭它。