2016-01-12 73 views
1
<?php 
    while($query=mysql_fetch_assoc($select)){ 
     ?> 
     <tr><td><input type="checkbox" name="checkBoxMail" id="checkBoxMail" 
     value="<?php echo $query['id']; ?>" 
     userid="<?php echo $query['suserid']; ?>"></td> 

     </tr> 
     <?php 
    } 
    ?> 

此代码在视图页面中创建了多个复选框。首先检查只返回值之后,明年复选框,点击不工作jquery复选框单击不工作

$('#checkBoxMail').click(function(){ 

    alert("alert"); 
}); 
+0

您必须使用委托事件绑定。 '$('#checkBoxMail')。click'不适用于动态创建的'html'。必须做'$(document).on('click','。checkBoxMail',function(){ });' –

+0

您使用checkBoxMail作为ID,这就是为什么多个相同ID无效。为此,必须将ID更改为class ='checkBoxMail',并从输入标记$('。checkBoxMail')中删除ID。 –

回答

0

您正在使用相同ID为creted所有复选框,或者使用唯一的ID为每个复选框或使用类。请参见下面的代码,在那里我已经使用类

<?php 
    while($query=mysql_fetch_assoc($select)){ 
     ?> 
     <tr><td><input type="checkbox" name="checkBoxMail" class="checkBoxMail" 
     value="<?php echo $query['id']; ?>" 
     userid="<?php echo $query['suserid']; ?>"></td> 

     </tr> 
     <?php 
    } 
    ?> 

的jQuery:

$(document).on('click','.checkBoxMail', function(){ 
    alert("alert"); 
}); 
6

会有多个复选框具有相同id这是不对的。试用class

<input type="checkbox" name="checkBoxMail" class="checkBoxMail" 
value="<?php echo $query['id']; ?>" 
userid="<?php echo $query['suserid']; ?>"> 

而且

$('.checkBoxMail').click(function(){ 
    alert("alert"); 
}); 

如果你要访问的值或属性,然后简单做 -

$(this).val(); 
$(this).attr('userid'); 
+0

你需要处理委托cz复选框生成循环取决于数据 –

+0

我非常怀疑你的'。点击“将在这种情况下工作。 –

+1

我看不出有任何理由不能工作! –

0

给类所有与阅读有关委派的事件处理程序,这将有助于:http://api.jquery.com/on/

$(document).on("click",".classname",function(event){ 
    alert("hi"); 
}); 

委托事件的优点是可以处理来自 后来添加到文档中的事件的事件。通过 采摘这是保证出席 委派的事件处理程序连接时的元素,你可以使用委派事件 避免需要频繁安装和取下的事件处理程序如何

3

三个例子可以通过ID执行此操作:

请记住,如果您要创建多个复选框字段,请不要设置相同的ID,为每个ID设置不同的ID,或者您可以通过将#更改为.来选择复选框可以多次使用该类名。

的ID必须是唯一

$(document).ready(function() 
 
{ 
 
    // By ID - ID has to be unique 
 
    $('#checkBoxMail').on("click", function() 
 
    { 
 
    alert("alert"); 
 
    }); 
 
    
 
    $('#checkBoxMail2').click(function() 
 
    { 
 
    alert("alert2"); 
 
    }); 
 
    
 
    $(document).on("click", "#checkBoxMail3", function() 
 
    { 
 
    alert("alert3"); 
 
    }); 
 
    
 
    // By classname 
 
    $('.checkBoxMail5').on("click", function() 
 
    { 
 
    alert("alert"); 
 
    }); 
 
    
 
    $('.checkBoxMail5').click(function() 
 
    { 
 
    alert("alert2"); 
 
    }); 
 
    
 
    $(document).on("click", ".checkBoxMail5", function() 
 
    { 
 
    alert("alert3"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
Divs with unique ID 
 
<hr> 
 
<div id="checkBoxMail">CLICK ME</div> 
 
<div id="checkBoxMail2">CLICK ME</div> 
 
<div id="checkBoxMail3">CLICK ME</div> 
 

 

 
<br> 
 
Div with classname 
 
<hr> 
 
<div class="checkBoxMail5">CLICK ME</div>

+1

ID必须是唯一的。你不能使用同一个id多个时间。这是动态的dom,所以它需要委托你的第一种方式是行不通的。 –

+0

但运算需要在整个表 –

+0

@AnikIslamAbhi点击复选框不 - 我已经改变了我的回答说关于ID的 –

0
$('#checkBoxMail').is(':checked'){ 
    alert("alert"); 
}); 

试试这个。请享用!

+0

这是不完整的(它只是一个条件的一部分)和无效的JavaScript。 – moopet

+0

或者他可以使用'document.getElementById('checkBoxMail')。checked'它也可以。 – nerdyDev

+0

这是有条件的一半回调。 – moopet

0
$(document).ready(function() { 

    $('#checkBoxMail').click(function() { 

    alert("click event fired")}); 

}); 

<input type="checkbox" name="checkBoxMail" id="checkBoxMail" />