moh*_*ari 7 javascript checkbox jquery
我有一个多复选框以相同的ATTR name
一样"Check"
,但每个复选框有不同的价值
所以我必须创建一个jQuery代码,如果我按下复选框将在PHP中做一些像这样的代码
$(document).ready(function(){
var NewsPaperId;
var UserId;
var CategoryId;
$("input[type='checkbox']").click(function() {
if ($(this).is(':checked')) {
NewsPaperId= $('input[name="Check"]:checked').val();
UserId= $(".userId").val();
CategoryId= $(".CategoryId").val();
alert(NewsPaperId);
$.post("AddAndDelete.php",
{
Add:1,
UserId: UserId,
NewsPaperId: NewsPaperId,
CategoryId:CategoryId
},
function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
} else {
NewsPaperId= $('input[name="Check"]:checked').val();
UserId= $(".userId").val();
CategoryId= $(".CategoryId").val();
alert(NewsPaperId);
$.post("AddAndDelete.php",
{
Delete:1,
UserId: UserId,
NewsPaperId: NewsPaperId,
CategoryId:CategoryId
},
function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是php创建的复选框代码
<?php
$i=1;
$sql = "SELECT NewsPaperStatus.*,UserChoises.*"
. " FROM NewsPaperStatus"
. " LEFT JOIN UserChoises"
. " ON NewsPaperStatus.Id=UserChoises.NewsPaperId"
. " WHERE NewsPaperStatus.CategoryId=$Categoryid";
$query = mysql_query($sql);
while ($row = mysql_fetch_assoc($query)){
if($i==1){
if($row['Id']==$row['NewsPaperId']){
echo '<tr><th><img src="../images/NewsPaper/'.$row['Logo'].'"/></th><th><a href="">'.$row['Name'].'</a></th><th><input class="check" type="checkbox" checked="checked" name="Check" value="'.$row['Id'].'"/></th>';
}else{
echo '<tr><th><img src="../images/NewsPaper/'.$row['Logo'].'"/></th><th><a href="">'.$row['Name'].'</a></th><th><input class="check" type="checkbox" name="Check" value="'.$row['Id'].'"/></th>';
}
}
else if($i==2){
if($row['NewsPaperId']==$row['Id']){
echo '<th><img src="../images/NewsPaper/'.$row['Logo'].'"/></th><th><a href="">'.$row['Name'].'</a></th><th><input class="check" type="checkbox" checked="checked" name="Check" value="'.$row['Id'].'"/></th>';
}else{
echo '<th><img src="../images/NewsPaper/'.$row['Logo'].'"/></th><th><a href="">'.$row['Name'].'</a></th><th><input class="check" type="checkbox" name="Check" value="'.$row['Id'].'"/></th>';
}
}
else if($i==3){
if($row['NewsPaperId']==$row['Id']){
echo '<th><img src="../images/NewsPaper/'.$row['Logo'].'"/></th><th><a href="">'.$row['Name'].'</a></th><th><input class="check" type="checkbox" checked="checked" name="Check" value="'.$row['Id'].'"/></th></tr>';
}else{
echo '<th><img src="../images/NewsPaper/'.$row['Logo'].'"/></th><th><a href="">'.$row['Name'].'</a></th><th><input class="check" type="checkbox" name="Check" value="'.$row['Id'].'"/></th></tr>';
}
$i=0;
}
$i++;
}
?>
Run Code Online (Sandbox Code Playgroud)
所以问题是,当我按下任何复选框时它的工作正常,但是当我取消选中另一个时,请选中最后一个复选框((如果我按复选框值16并按复选框值17,这样它的工作正常,但是当我想要取消选中值为16的复选框,它的值为17,它选中复选框的最后一个值.
在下面一行中:
if ($(this).is(':checked')) {
NewsPaperId= $('input[name="Check"]:checked').val();
Run Code Online (Sandbox Code Playgroud)
您正在获取选中复选框的值,并且您已经将选中的条件放入 if 条件中。所以我的建议是更换
NewsPaperId= $('input[name="Check"]:checked').val();
Run Code Online (Sandbox Code Playgroud)
上面一行和下面一行:
NewsPaperId= $(this).val();
Run Code Online (Sandbox Code Playgroud)
在其他部分,您需要检查是否有任何选中的复选框。这是它的代码:
else {
$('input[name="Check"]').each(function(){
if($(this).is(':checked')){
NewsPaperId= $(this).val();
}
});
if(NewsPaperId != ''){ //do your stuff}
Run Code Online (Sandbox Code Playgroud)
这就是设置 if 条件的原因。原因是如果用户单击选中的复选框而其他复选框未选中,则 的值NewsPaperId
将为空白,否则 if 将采用将选中的其他复选框的值。
归档时间: |
|
查看次数: |
1909 次 |
最近记录: |