Проверка радио на основе строк для матричного типа jquery - PullRequest
1 голос
/ 24 января 2012

Я использую jquery mobile 1.0.

У меня есть этот код

<table>
<tr>
 <td> <input type="radio" id="r11"   value="a" name="r1_selectedobjects" /> </td>
   <td><input type="radio" id="r12"   value="b" name="r1_selectedobjects" /> <td>
</tr>
<tr>
   <td><input type="radio" id="r21"   value="a" name="r2_selectedobjects" /></td>
  <input type="radio" id="r22"   value="b" name="r2_selectedobjects" /></td>
</tr>
   <td><input type="radio" id="r31"   value="a" name="r3_selectedobjects" /></td>
   <td><input type="radio" id="r32"   value="b" name="r3_selectedobjects" /></td>
<tr>
<tr>
<td><input type="submit" id="matbutton" data-inline="true"  value="Submit" onclick="return CheckMatrixRadio(this);" /></td>
    </tr>
</table>

поэтому, когда я нажимаю на кнопку отправки, я должен подтвердить, что в каждой строке должно быть выбрано значение. Я написал этот сценарий.

function CheckMatrixRadio(button) { 
var totalvalues ='';
        $('input[name$=_selectedobjects]:checked').each(function () { 
                if ($(this).val()) {
                    totalvalues += $(this).val() + ',';
                }
                else { 
                    alert('Can not leave empty');
                } 
        });
  }

но он не работает должным образом (не считая строки) Как я должен проверить это в Jquery.

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 24 января 2012

просто сделай это

var all_checkd = true;
var totalvalues ='';

$('tr:not(:eq(3))').each(function(index){


       if($(this).find('input[name*="_selectedobjects"]').is(':checked'))
       {
          totalvalues += $(this).find('input[name*="_selectedobjects"]:checked').val() +',';
       }
       else
       {
         all_checkd = false;
       }
});

if(all_checkd )
 {
    //do the work
}  
0 голосов
/ 24 января 2012

Это не может работать.Во-первых, вы выбираете только отмеченные элементы, во-вторых, val() возвращает значение переключателя, а не проверенное состояние.Попробуйте это:

function CheckMatrixRadio(button) { 
    var totalvalues ='';
    var checked = $('input[name$=_selectedobjects]:checked');

    var count = 0;
    var map = {};
    $('input[name$=_selectedobjects]').each(function() { 
        if (!map[this.name]) {
            map[this.name] = true;
            count++;
        }
    });

    if (checked.length < count) {
        alert('Can not leave empty');
        return false;
    }

    checked.each(function () { 
        totalvalues += $(this).val() + ',';
    });

    return true;
}
0 голосов
/ 24 января 2012

Вы применяете селектор :checked, который выбирает только проверенные входы ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...