2017-08-08 16 views
1

我有一個硬JS/jQuery的謎語!很難,因爲我無法在谷歌或這裏找到它,既不是現在,也不是幾個月前,我以前正在尋找它。如何從組中檢索引用複選框名稱數組使用JS或jQuery

一個大框架在一個表中使用複選框:

<table class="ListTable"> 
    <tr> 
    <td><input name="blnChecked[70_20]" type="checkbox" value="1" id="some_unusable_gobbledy_gook" /></td> 
    <td></td>... 
    </tr> 
    <tr> 
    <td><input name="blnChecked[71_20]" type="checkbox" value="1" id="some_more_unusable_gobbledy_gook" /></td> 
    <td></td>... 
    </tr> 
    <tr> 
    <td><input name="blnChecked[70_25]" type="checkbox" value="1" id="some_further_unusable_gobbledy_gook" /></td> 
    <td></td>... 
    </tr> 
</table> 

我現在需要引用收集所有複選框名稱到一個數組:70_20,71_20和70_25在上面的例子。然後加入它們,並將它們作爲URL參數提交給不同的頁面(儘管這種加入對我的問題不是必需的)。

問題:在同一頁面上使用JS/jQuery,如何從數組中的這些(選中)複選框中的名稱字符串獲取這些引用?

我更喜歡不使用正則表達式(有點麻煩,或者對於這樣一個看起來不重要的事情來說「過度刺激」),儘管這樣的解決方案並沒有離開我的桌子。如果有人問爲什麼這個表的結構是這樣的:這不是我做的,但我可以看到,當這個表格被提交到PHP頁面時,PHP將所有這樣的複選框存儲到單個陣列,這是非常好的,我想實現與JS/jQuery的類似的效果)

+0

你嘗試做一個簡單的'<形式方法= 「POST」 ACTION = 「example.com」>' – styfle

+0

林不知道爲什麼你的建議是:我問到使用JS/jQuery檢索值,而不是如何將其提交給PHP文件。當然,它會檢索的值,但它不回答我的問題,也沒有我的問題,使GET請求(不POST)。 –

+0

我在問,因爲你的問題不清楚。你說過「如何在數組中獲取這些引用」,但是它是一個JavaScript數組還是一個PHP數組?另外,給定HTML輸入,輸出應該是什麼? – styfle

回答

1

上創建客戶端側上的方式在陣列是基於使用:

$('#btn').on('click', function(e) { 
 
    var retVal = $('table.ListTable :checkbox[name^="blnChecked["]:checked').map(function(idx, ele) { 
 
     // 
 
     // if the name value has always the same format... 
 
     // 
 
     return ele.name.replace('blnChecked[', '').replace(']', ''); 
 
     // 
 
     // or.... 
 
     // 
 
     // return ele.name.split('[').pop().replace(']', ''); 
 
     // return ele.name.substr(11, 5); 
 
     //return ele.name.replace(/blnChecked\[(.*?)\]/g, '$1') 
 
    }).get(); 
 
    var param = $.param({'param': retVal.join(',')}); 
 
    console.log('Array: ' + retVal); 
 
    console.log('URL param: ' + param); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<table class="ListTable"> 
 
    <tr> 
 
     <td><input name="blnChecked[7125_2355]" type="checkbox" value="1" id="some_unusable_gobbledy_gook" /></td> 
 
     <td></td> 
 
    </tr> 
 
    <tr> 
 
     <td><input name="blnChecked[71_20]" type="checkbox" value="1" id="some_more_unusable_gobbledy_gook" /></td> 
 
     <td></td> 
 
    </tr> 
 
    <tr> 
 
     <td><input name="blnChecked[70_25]" type="checkbox" value="1" id="some_further_unusable_gobbledy_gook" /></td> 
 
     <td></td> 
 
    </tr> 
 
</table> 
 

 
<button type="button" id="btn">Click Me</button>

+0

非常好!這回答了這個問題,但是你正在使用一些沉重的坦克,我希望能夠避開 –

+0

是的,我可以看到substr。但是,那麼你將不得不使用substr兩次(擺脫最後一個)),使兩種可能性同樣泥濘。 –

+0

但是如果name =「blnChecked [7125_2355]」呢?這些參考文獻並不固定。你之前的回答比較好。 –

相關問題