我试图从一组未选中的html
复选框中存储values
。据我所知,JQuery
没有:未经检查的选择器,所以我必须反转:检查选择器。我已经完成了这一步,并且获取未经检查的框的值以及其他一些值,如null
和0
。我不知道这些来自哪里。使用JQuery获取div中未选中复选框的值
这里是我的HTML
:
<div id="tag_results">
<ul>
<li>
<input type="checkbox" value="29" name="tag" checked=""></input>
Agriculture
</li>
<li>
<input type="checkbox" value="30" name="tag" checked=""></input>
Angling
</li>
<li>
<input type="checkbox" value="37" name="tag"></input>
Animals
</li>
<li>
<input type="checkbox" value="54" name="tag" checked=""></input>
Arts
</li>
</ul>
</div>
这里是我的JQuery
:
$('#saveBtn').click(function(e){
e.preventDefault();
//Get hidden field values and store in an Array
$tagArray = [];
$removeTags = [];
//Get the Checked Tags and store in an Array(will be added)
$('#tag_results :checked').each(function(){
$tagArray.push(this.value);
});
//Get the Unchecked Tags and Store in an Array(will be removed)
$('#tag_results :not(:checked)').each(function(){
$removeTags.push(this.value);
});
console.log($removeTags);
//Make Ajax request to the add_tags script and pass Array as parameter. When response recieved show dialog.
//Pass the name, id and type of company with the array of tags to the save_tags.php script.
$('#active_tags').load('pages/ajax/save_tags.php', {'removeTags': JSON.stringify($removeTags),'tags': JSON.stringify($tagArray) ,'name': $('#comp_name').val(), 'id': $('#comp_id').val(), 'type': $('#type').val() }, function(response, status, xhr){
});
});
这是console.log
结果:
Array [ undefined, 0, 0, 0, "37", 0, "54" ]
这是我用它来生成代码复选框html
:
$output = "<ul>";
if(mysql_num_rows($result) > 0){//If results returned (tags found matching letter) so construct list
while($row = mysql_fetch_array($result)){//while there are rows in the results array add a list item
if(in_array($row['name'], $applied_tags)){
$output .= "<li>" .'<input checked type="checkbox" name="tag" value="'.$row['id'].'">' .$row['name'] .'</li>'.PHP_EOL;
}else{
$output .= "<li>" .'<input type="checkbox" name="tag" value="'.$row['id'].'">' .$row['name'] .'</li>'.PHP_EOL;
}
}
}else{//Else there was no matching tags so display an error message to the user.
$output .= "<li>No Tags found beginning with the letter " . $letter . "</li>";
}
$output .= "</ul>";
有没有人有任何线索可能导致这种情况?当然基于上述代码中的数组应该包含值37和54 ...
工作,谢谢。为什么我的原始代码不工作? – Javacadabra 2014-12-02 12:47:08
它发生是因为没有提及元素的类型。 – 2014-12-02 12:49:47
非常感谢你,会在3分钟内接受回答。 – Javacadabra 2014-12-02 12:51:47