台灣最大程式設計社群網站
線上人數
867
 
會員總數:240668
討論主題:186529
歡迎您免費加入會員
討論區列表 >> ASP.NET >> Checkbox全選並執行Checkbox onclick事件
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Checkbox全選並執行Checkbox onclick事件
價值 : 100 QP  點閱數:194 回應數:6

樓主

rick
門外漢
0 2
96 6
發送站內信


各位好,小弟想實做一個功能,想請各位大大為小弟解惑,
現在完成的功能是將資料庫的資料撈出來,以一筆一筆的方式呈現
每筆前方有一checkbox可供使用者點選,點選後會執行onclick事件

這是每筆資料
<td><input type=""checkbox"" id=""Check1" & i & """ name=""Check1" & """ value=""" & Trim(Rs.Fields.Item("id").Value & "") & """ onclick=""checkhour('" & i & "','0','" & check11 & "','" & check22 & "','1','" + check33 + "','" + check44 + "','" + check55 + "');"" /></td>

因為使用者反應一筆一筆點選過慢,故現在我想新增一個全選的checkbox,
除了全選外還需要一併執行每一個checkbox的onclick事件,
以下是程式碼

<td nowrap class=smooth9><input type =""checkbox"" id=""CheckAll"" name=""CheckAll"" onclick=""checkall();"" />全選</td>

function checkall()
{
var checkValue = document.getElementById('checkall').checked;
for (i=0; i < document.getElementsByName(""Check1"").length; i++)
{
if (document.getElementsByName(""Check1"")[i].disabled==false)
{
document.form1.all('Check1'+i).checked = checkValue;
document.form1.all('Check1'+i).click();
checkhour('" & i & "','0','" & check11 & "','" & check22 & "','1','" + check33 + "','" + check44 + "','" + check55 + "');
}
}
}


問題是如果今天不加 document.form1.all('Check1'+i).click();
可實現全選功能,但不會執行onclick事件
加了document.form1.all('Check1'+i).click();
瀏覽器卻會出現反應過慢,停止回應的現象產生
該頁面筆數不多(<20筆),一筆一筆點選也沒問題
請問程式碼哪裡需要調整呢?
麻煩各位大大了...






搜尋相關Tags的文章: [ Checkbox全選 ] , [ onclick ] ,
本篇文章發表於2017-07-14 11:15
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

rick
檢舉此回應
文中function有多餘code 更新一下 麻煩各位了

function checkall()
{
var checkValue = document.getElementById('checkall').checked;
for (i=0; i < document.getElementsByName(""Check1"").length; i++)
{
if (document.getElementsByName(""Check1"")[i].disabled==false)
{
document.form1.all('Check1'+i).checked = checkValue;
document.form1.all('Check1'+i).click();
}
}
}
本篇文章回覆於2017-07-14 11:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

小魚
檢舉此回應
其實我看不大懂你總共有哪些checkbox
本篇文章回覆於2017-07-14 12:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

rick
檢舉此回應
謝謝你的回覆
比如說 當月有10筆資料
就會於畫面顯示10筆資料
每一筆資料前方有一checkbox,使用者點選checkbox後才可以去編輯該筆資料內的欄位
上面我沒有把整筆資料的欄位貼出來
只有貼有關checkbox的
不知這樣有沒有回答您的疑問
本篇文章回覆於2017-07-14 13:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

Alan.Liu
檢舉此回應
請問是Webform or MVC or 前端串接WebAPI方式呢
不同的專案架構 可能有不同的建議作法
本篇文章回覆於2017-07-18 15:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
問題是如果今天不加 document.form1.all('Check1'+i).click();
可實現全選功能,但不會執行onclick事件
加了document.form1.all('Check1'+i).click();
瀏覽器卻會出現反應過慢,停止回應的現象產生


小喵好奇的是,您的click事件中,進行了些什麼?
猜測可能是大量的「回圈中有回圈」
造成瀏覽器覺得這樣做下去可能太久∼

也許修改一下您的click內的動作,不會太多回圈一次執行,會比較好

所以,是否請您貼出您的click裡面做些啥?

另外,document.form1.all這樣的用法,會很侷限(IE Only)
建議改用 jQuery 的方式會比較好
^.^a
本篇文章回覆於2017-07-18 17:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

小魚
檢舉此回應
這是我寫的網頁取出來的,
因為有好幾組所以這樣子做,
至少Chrome是可以用的,
其實我不大知道瀏覽器支援的問題,
不過對方目前都還沒反應應該沒問題吧,


本篇文章回覆於2017-07-22 11:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.