Я создал очень простую страницу для проверки вашей проблемы:
<html>
<head>
<script type="text/javascript" src="prototype-1.6.0.3.js" ></script>
</head>
<body>
<form>
<input type="checkbox" id="test1" /> Test 1<br/>
<input type="checkbox" id="test2" /> Test 2<br/>
<input type="checkbox" id="test3" /> Test 3<br/>
<input type="checkbox" id="test4" /> Test 4<br/>
<input class="submit" type="button" value="check all" onclick="$(this.form).getInputs('checkbox').each(function (elem) {elem.checked = true;});" />
</form>
</body>
</html>
и он отлично работает в Firefox 3.0.8 (а также в IE) ...
Я не согласен с другими ответами ... this.form должен быть в порядке (получает объект формы от кнопки отправки, которая затем должна позволить вам получить флажки от него через getInputs).
В чем проблема? Ничего не происходит вообще? Если так, то единственное, о чем я могу подумать, это флажки в той же форме, что и кнопка?
РЕДАКТИРОВАТЬ: Если ваш код фактически такой же, как и выше, и он не работает, лучшее, что я могу предложить, - это превратить ваш onclick в вызов функции propper и затем использовать firebug , чтобы определить, какой именно бит не работает. То есть сделайте так, чтобы ваш код выглядел так:
<html>
<head>
<script type="text/javascript" src="prototype-1.6.0.3.js" ></script>
<script type="text/javascript" >
function checkAll(button) {
var form = $(button.form);
var inputs = form.getInputs('checkbox');
inputs.each(function (elem) {
elem.checked = true;
});
}
</script>
</head>
<body>
<form>
<input type="checkbox" /> Test 1<br/>
<input type="checkbox" /> Test 2<br/>
<input type="checkbox" /> Test 3<br/>
<input type="checkbox" /> Test 4<br/>
<input class="submit" type="button" value="check all" onclick="checkAll(this)" />
</form>
</body>
</html>
Затем вы можете поместить точки останова в функцию и убедиться, что «кнопка», «форма» и «входы» - это то, что вы ожидаете, и что «элемент» в каждом цикле тоже.