2011-06-21 20 views
0

我有一個複選框的列表,每個鏈接旁邊都有一個鏈接。喜歡的東西:如何設置鏈接檢查複選框的變量名稱,編號,值

<form name="checkboxlist" action="..." > 
    <input type="checkbox" id="1" name="pageCB" value="1"/> 
    <a id="1" href="#" onclick="sub(id)>click here</a> 
    <input type="checkbox" id="2" name="pageCB" value="2"/> 
    <a id="2" href="#" onclick="sub(id)>click here</a> 
    ... 
    ... 
    <input type="submit" /> 
</form> 

我目前正在使用:

<script> 
    function sub(id){ 
     $("input:checkbox[value=id]").attr("checked", true); 
     document.checkboxlist.submit(); 
    } 
</script> 

但這顯然不讀變量ID,我真的想避免,如果每個ID語句有幾個其中有數百個。有沒有辦法做到這一點?

+0

你能修改html嗎?在頁面上使用多個相同的ID是無效的。我建議使用

+0

如果您知道該id,它不會比$(「#」+ id).attr(「checked」,true)更簡單。 – Gabe

回答

3

編輯:我看到你也使用重複的ID。這是無效的,當通過ID選擇時,事情將不能正常工作。


數字標識在HTML4中無效。

不管怎麼說,改變這種:

$("input:checkbox[value=id]") 

這樣:

$("input:checkbox[value='" + id + "']") 

這樣可以將的id值到選擇字符串,因爲我還添加了周圍的屬性選擇值引號這是文檔所要求的。

,改變你的在線處理程序是:

<a id="2" href="#" onclick="sub(this.id)>click here</a> 

...因爲this是對元素的引用點擊,this.id是其ID屬性的參考。

+0

是的,我是個白癡。我曾嘗試將它連接起來,但沒有在屬性周圍引用引號就無法運行。 –

+0

@ down-voter:解釋你的投票,如果你能夠。 – user113716

5

你不應該使用鏈接,你應該使用<label>標籤。

這就是它的目的。

<input type="checkbox" name="mybox" id="mybox"> 
<label for="mybox">Click this box</label> 

這適用於所有表單字段,並且比構建JS來做一些已經存在的東西要好得多。

+1

同意,但這不會觸發提交複選框更改 –

+0

啊,但您可以輕鬆地將該事件附加到表單中的所有標籤,但這不會是一個非常好的用戶體驗。 – Seth

+0

確實。在點擊時自動提交表單看起來有點奇怪。哦vell ... OP知道他想要什麼,我猜:) –

0

如果我理解正確,您希望通過單擊關聯的元素來支持選擇複選框,並單擊提交表單。我建議a)使用<label>元素代替<a>,因爲它們可以通過id與輸入相關聯,並且b)不使用數字,重複id屬性。

<form name="checkboxlist" action="#"> 
    <input type="checkbox" id="a" name="pageCB" value="1"/> 
    <label for="a">Click here</label> 
    <input type="checkbox" id="b" name="pageCB" value="2"/> 
    <label for="b">Click here</label> 
</form>  

<script> 
    $(document).ready(function() { 
     $('input:checkbox').change(function(){ 
      $(this).parent('form').submit(); 
     }); 
    }); 
</script> 
相關問題