Я новичок в JavaScript и jQuery. Я пытаюсь выяснить, как получить мои флажки, отмеченные ярлыками, чтобы в конечном итоге отправить на следующую веб-страницу. Я также хочу отправить полный список отмеченных и не отмеченных ящиков на следующую веб-страницу, поэтому я подумал, что просто сохраню их в массиве, чтобы начать, но массив не работает, чтобы отобразить его.
Способ работы этой страницы списка флажков заключается в том, что после того, как пользователь выполнил проверку, они нажимают кнопку, и результаты фиксируются для отправки.
Я начал выполнять эту функцию, но я пытаюсь использовать массив с полным списком меток, которые будут использоваться для отображения и отправки позже. У меня возникли проблемы с получением массива для отображения имени метки, и я не могу не думать, что я не делаю этого правильно или что есть лучший способ сделать это. Я занимаюсь проверенным значением (on), когда я использовал inpfields[i].value
, но мне действительно нужна отмеченная метка элемента. Когда я использовал inpfields[i].label
, он ничего не возвращал. Я также попробовал lblFields [i].label, и он тоже был пуст.
Мои вопросы:
У меня появилась идея нажать кнопку для обработки флажка здесь. Я пытаюсь понять массивы здесь, но пока не работает. У меня появилась идея использовать методологию getLabel (id) здесь, но она не работает.
Прямо сейчас, когда я нажимаю кнопку, я получаю всплывающее окно, в котором говорится об объекте HTMLCollection.
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>jQuery Michele Project</title>
<link href="css/skins/polaris/polaris.css" rel="stylesheet">
<link href="css/skins/all.css" rel="stylesheet">
<link href="css/demo/css/custom.css" rel="stylesheet">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="js/jquery-1.11.0.js"></script>
<script type="text/javascript" src="js/jquery.ui.core.js"></script>
<script type="text/javascript" src="js/jquery.ui.widget.js"></script>
<script src="js/icheck.js"></script>
<script>
function getHeading(var i){
var allCheckboxLabels = [Heading1, Heading2, Heading3];
document.getElement().innerHTML = allCheckboxLabels[i];
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$('.input').iCheck({
checkboxClass:'icheckbox_polaris',
radioClass:'iradio_polaris',
increaseArea:'10%'
});
});
</script>
<script type="text/javascript">
// Returns an array with values of the selected (checked) checkboxes in "frm"
function getSelectedChbox(frm) {
// JavaScript & jQuery Course - http://coursesweb.net/javascript/
var selchbox = []; // array that will store the value of selected checkboxes
// gets all the input tags in frm, and their number
var inpfields = frm.getElementsByTagName('input');
var lblFields = frm.getElementsByTagName('label');
//alert(lblFields);
var nr_inpfields = inpfields.length;
// traverse the inpfields elements, and adds the value of selected (checked) checkbox in selchbox
for(var i=0; i<nr_inpfields; i++) {
if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(lblFields[i].value);
}
return selchbox;
}
$(function(){
document.getElementById('btntest').onclick = function() {
var selchb = getSelectedChbox(this.form);
alert(selchb);
}
});
//function getLabel(id){
// return $("#"+id).next("label").html();
//}
</script>
<style type="text/css">
ul {list-style-type: none}
img {padding-right: 20px; float:left}
#infolist {width:500px}
</style>
</head>
<body>
<form>
<div class="skin skin-line">
<div class="arrows">
<div class="top" data-to="skin-flat"></div>
<div class="bottom" data-to="skin-polaris"></div>
</div>
</div>
<div class="skin skin-polaris">
<div class="arrows">
<div class="top" data-to="skin-line"></div>
<div class="bottom" data-to="skin-futurico"></div>
</div>
<h3>Select Items for Column Headings</h3>
<dl class="clear">
<dd class="selected">
<div class="skin-section">
<h4>Live</h4>
<ul class="list">
<li>
<input tabindex="21" type="checkbox" id="polaris-checkbox-1">
<label for="polaris-checkbox-1">getHeading(1)</label>
</li>
<li>
<input tabindex="22" type="checkbox" id="polaris-checkbox-2" checked>
<label for="polaris-checkbox-2">Checkbox 2</label>
</li>
<li>
<input type="checkbox" id="polaris-checkbox-3" >
<label for="polaris-checkbox-3">Checkbox 3</label>
</li>
<li>
<input type="checkbox" id="polaris-checkbox-4" checked >
<label for="polaris-checkbox-4">Checkbox 4</label>
</li>
</ul>
</div>
<script>
$(document).ready(function(){
$('.skin-polaris input').iCheck({
checkboxClass: 'icheckbox_polaris',
radioClass: 'iradio_polaris',
increaseArea: '20%'
});
});
</script>
</dd>
</dl>
</div>
<div id="loading">
<input type="button" value="Click" id="btntest" />
</div>
</form>
</body>
</html>
Я понял. Я закончил с использованием:
if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(lblFields[i].innerHTML);
Спасибо за подсказку!
Вот как я получил массив allLabels. Я больше не использовал getheading (i) в своем ярлыке. Я просто использую текст для ярлыков, потянув имена в массив, а затем я выясню, как отправить массив на следующую веб-страницу.
function getSelectedChbox(frm) {
// JavaScript & jQuery Course - http://coursesweb.net/javascript/
var selchbox = []; // array that will store the value of selected checkboxes
var allLabels = []; // array to store value of all checkboxes, selected and not
// gets all the input tags in frm, and their number
var inpfields = frm.getElementsByTagName('input');
var lblFields = frm.getElementsByTagName('label');
var allLabelFields = frm.getElementsByTagName('label').innerHTML;
var nr_inpfields = inpfields.length;
// traverse the inpfields elements, and adds the value of selected (checked) checkbox in selchbox
for(var i=0; i<nr_inpfields; i++) {
if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(lblFields[i].innerHTML);
if(inpfields[i].type == 'checkbox') allLabels.push(lblFields[i].innerHTML);
}
alert(allLabels);
return selchbox;
}
getElement()
функциюgetElement()
где вам даже не нужно передавать селектор?