2012-07-21 28 views
0

jQuery腳本,它在一個特定的時間內在新窗口中逐個打開選定框。但它運行所有框上點擊按鈕,無論我檢查什麼或不是我很困惑。複選框不運行選定的項目,而是全部運行

我的jQuery代碼:

function bon() 
{ 
    var field = document.getElementsByName('list'); 
    var len = field.length;  
    var j=0; 
    for (i = 0; i < field.length; i++) 
    { 
     lk[j] = document.getElementById('addlink_'+i).value;  
     j++;  
    } 
win = window.open("","myWindow","height=500,width=500,menubar=no,status=no"); 
process(); 
var interval = document.getElementById('interval').value; 
window.setInterval(function(){ process();}, interval);  
} 
function process() 
{ 
     if(oldval<lk.length) 
     { 
       var ln =lk[oldval]; 
       win.location.href =ln; 
       //$.post("updateclick.php",{dbid:recordid},function(data) { document.getElementById(countid).innerHTML = data; });     
       oldval =oldval+1; 
     } 
     else 
     { 
      window.location.href=location.href; 
     } 
} 
function process1(a,b) 
{ 
    if(document.getElementById('chkbox_'+a).checked==true) 
    { 

    } 
    else 
    { 
     thisimg(a,b); 
    } 
} 

而我的HTML代碼:

<div class='posts'> 
    <input style='float:left; height:85px;' type='checkbox' name='list' value='chck_".$counter."' id='chkbox_".$counter."'/> 
    <div class='title box' onclick='process1(".$counter.",".$row['id'].")'> 
     <div style='float:left;' onclick='thisimg(".$counter.",".$row['idDiv1'].")'> 
      <img src='".$imgpath."' height='50' width='50' /> 
     </div> 
     <div class='click' style='float:right;'> 
      <b>Clicks <br/> 
       <div id='count_".$counter."'> ".$click." </div> 
       <input type='hidden' id='addlink_".$counter."' value='".$app_link."' rel='nofollow'/></b> 
     </div> 
     <div style='float:left; width:100px; overflow:hidden; white-space: pre;'> 
      <b> ".$title."</b> 
      <br/>".$beforetime." 
     </div> 
    </div> 
</div> 

這是我的按鈕代碼:

<select id="interval"> 
    <option value="5000"> 5 Seconds</option> 
    <option value="10000"> 10 Seconds</option> 
    </select> 
    <input class="butn" type="button" value="Collect" onclick="bon()" /> 

工作:用戶必須選中他們希望在特定時間內在新窗口中逐一打開框(在我的選項框中提供)。但是,無論我是否檢查任何一個,它都會像選中所有複選框一樣逐一執行。

確定這裏是實際的HTML,打印

<div class=posts> 
    <input style='float:left; height:85px;' type=checkbox name=list value=chck_0 id=chkbox_0 /> 
    <div class='title box' onclick='process1(0,190757)'> 
    <div style='float:left;' onclick='thisimg(0,190757)'> 
     <img src='/images/3c59e768eefb1d5d4a0bfdf0ae23cf5a.png' height=50 width=50 /> 
    </div> 
    <div class=click style='float:right;'><b>Clicks <br/> 
    <div id=count_0> 0 
    </div> 
    <input type=hidden id=addlink_0 value='/link/zqdba3' rel=nofollow></b> 
    </div> 
    <div style='float:left; width:100px; overflow:hidden; white-space: pre;'> <b> Title</b><br/>2 Hs 31 Ms ago 
    </div> 
</div> 
</div> 

請幫助我很迷茫。

+0

您的HTML代碼存在問題,請更正並重試。 – totten 2012-07-21 22:35:22

+0

HTML已更正,但仍然存在問題... – 2012-07-21 23:12:49

+0

您能否進一步解釋代碼?一旦你點擊其中一個複選框,你只需要打開一個窗口,但是你會得到多個窗口? – 2012-07-21 23:59:08

回答

0

您正在迭代所有addlink_輸入而不查看複選框。如果選中了i複選框,則將相應的輸入元素的值推送到數組上。

var field = document.getElementsByName('list'); 
var len = field.length;  
lk = []; 
for (i = 0; i < len; i++) { 
    if(field[i].checked) { 
     lk.push(document.getElementById('addlink_'+i).value); 
    } 
} 
+0

我有一個更多的問題我有這個點擊更新腳本如何與選定的複選框進行交互以更新執行每個窗口後點擊... 2012-07-22 21:11:55

+0

如果你在評論中有這麼多的代碼,你應該創建一個單獨的問題。 – Dennis 2012-07-22 21:22:25

+0

請我必須再次發佈一切問題是有關這個問題,請.. – 2012-07-22 21:31:17