JqTouch / Jquery не распознает две разные группы кнопок радио - PullRequest
1 голос
/ 21 декабря 2011

У меня в основном две формы, одна для мужчины и другая для женщины. Код ниже работает для мужской формы, но когда я изменяю свой код, чтобы сделать то же самое для женской страницы, он не работает. Я обнаружил, что если код для мужской формы будет первым, он будет работать, но не для женской формы. И если я сначала поставлю женский код, он будет работать, но мужской код / ​​форма не будут работать. Так что это работает, но я думаю, что jqtouch / jquery не может различить две группы переключателей, даже когда я изменил название переключателей.

$("input[name=AxMale]:radio").click(function() {
    var x;
    x = parseFloat($("#MalePred").val())
    if ($(this).val() == '0') {
        parseFloat($('#prePredMale').val(x));
    }
    else if ($(this).val() == '1') {
        parseFloat($('#postPredMale').val(x));
    }
    else if ($(this).val() == '2') {
        parseFloat($('#MalePred').val(''));
        parseFloat($('#cmMale').val(''));
        parseFloat($('#kgMale').val(''));
        parseFloat($('#ageMale').val(''));
        $(this).attr('checked', false);

    }

});
return false;

это HTML

<li><input type="radio" name="AxMale" value="0" title="Initial Assessment" /></li>
 <li><input type="radio" name="AxMale" value="1" title="Exit Assessment" /></li>
<li><input type="radio" name="AxMale" value="2" title="Do Another Calculation" /></li>

, если также попробовал решения по этой ссылке JQuery и проблема с несколькими группами переключателей

$("input:radio").click(function() {
  if (this.name == "group_1") {
    // group 1 clicked
  } else if (this.name == "group_2") {
    // group 2 clicked
  }
});

но безуспешно, любая помощь будет великолепна.


просто чтобы быть более конкретным:

когда у меня есть этот код для женской формы ...

$("input[name=AxFemale]:radio").click(function() {
    var x;
    x = parseFloat($("#FemalePred").val())
if($(this).val() == '0') 
{
parseFloat($('#prePredFemale').val(x));
}
else if($(this).val() == '1')
{
parseFloat($('#postPredFemale').val(x));
}
else if($(this).val() == '2')
{
parseFloat($('#FemalePred').val(''));
parseFloat($('#cmFemale').val(''));
parseFloat($('#kgFemale').val(''));
parseFloat($('#ageFemale').val(''));
$(this).attr('checked', false);

}

});
return false;

это работает ... но только тогда, когда оно помещено перед мужским кодом.

поэтому в том же html (потому что я использую jqtouch) у меня есть группа переключателей с именем AxFemale

<li><input type="radio" name="AxFemale" value="0" title="Initial Assessment" /></li>
 <li><input type="radio" name="AxFemale" value="1" title="Exit Assessment" /></li>
 <li><input type="radio" name="AxFemale" value="2" title="Do Another Calculation" /></li>

1 Ответ

0 голосов
/ 21 декабря 2011

Попробуйте

$("input:radio").click(function() {
  if ($(this).attr('name') == "group_1") {
    // group 1 clicked
  } else if ($(this).attr('name') == "group_2") {
    // group 2 clicked
  }
});

Обновление

Так же, как замечание: в вашем примере HTML есть только группа с именем "AxMale"

...