0

私は次のように検索を使用しています:

var controls = divid.find(':input');

これにより、div 内のすべての入力コントロールが取得されます。

必要なのは、次のように、各タイプのコントロールのカウントを取得することです。

もっと良い方法があるはずです。

var answeredRb = false,
    answeredCb = false,
    answeredTb = false,
    answeredSel = false,
    rbCt = divid.find('input[type=radio]').length,
    rbSelected = divid.find('input[type=radio]:checked'),
    rbSelectedCt = rbSelected.length,
    cbCt = divid.find('input[type=checkbox]').length,
    cbSelected = divid.find('input[type=checkbox]:checked'),
    cbSelectedCt = divid.find('input[type=checkbox]:checked').length,
    tbCt = divid.find('input[type=text]').length,
    tbs = divid.find('input[type=text]'),
    selCt = divid.find('select').length;

助けてくれてありがとう。

4

1 に答える 1

1

これで十分ではないでしょうか:

var results = {};
var rules = ['input[type=radio]', 'input[type=radio]:checked', 'input[type=checkbox]', 'input[type=checkbox]:checked', 'input[type=text]', 'select'];

$(":input").each(function()
{
    for (var i=0; i<rules.length; i++)
    if ($(this).is(rules[i]))
        results[rules[i]] = results[rules[i]]+1 || 1;

});

console.log(results);

JSFiddle: http://jsfiddle.net/SyJxU/

別の方法: http://jsfiddle.net/SyJxU/1/

于 2013-10-24T16:06:04.903 に答える