2009-04-13 38 views

回答

-1

什麼是你

$('MYFORMNAME') 

更換

$(this.form) 

+0

`this`應該在這種情況下指的是提交按鈕,所以我猜`this.form`不適合使用。我的直覺是= boj =是對的:) – 2009-04-13 20:48:44

+0

我不同意......'this'應該是提交按鈕,所以'this.form'應該是表單(假設按鈕在表單內),它應該包含所有投入。 – Alconja 2009-04-14 01:13:40

0

窗體是輸入的父窗體,所以this.form應該沒有意義。使用ID選擇器或父代。

第二件事 - 聲明這個js爲文件加載分配動作,這種方式有點麻煩,從html中分離出js以便擁有乾淨靈活的代碼庫。

在jQuery中它會是某事像:

$(document).ready(function(){ 
    $.('#submitId').click(function(){ 
    // check the checkboxes 
    }); 
} 

原型應該是相似的。

+0

所有輸入元素都有一個this.form屬性,用於引用它們所屬的表單。 – 2009-04-16 00:14:33

3

我創建了一個非常基本的頁面來測試您的問題:

<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制定出哪些特定位ISN沒有工作。即使你的代碼是這樣的:

<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> 

然後你就可以把破發點中的函數&確保「按鈕」,「形式」和「輸入」是你所期望的他們是和認爲「ELEM '在每個循環中也是如此。