2015-06-05 4 views
0

У меня есть функция, которая предупреждает пользователя обо всех значениях, которые они проверили, из флажков. Например, если пользователь выбирает «1» и «2», тогда он должен предупреждать «1, 2», или если пользователь выбирает «1» и «3», он должен предупредить 1, 3 и т. Д. Однако он не работает. Любая помощь будет оценена :)Добавление флажка Значение jQuery

<form> 
    <input class="1" type="checkbox" name="1" value="1" onclick="add()">1 
    <input class="2" type="checkbox" name="2" value="2" onclick="add()">2 
    <input class="3" type="checkbox" name="3" value="3" onclick="add()">3 
    <input class="4" type="checkbox" name="4" value="4" onclick="add()">4 
</form> 

Вот jsfiddle.

+0

Вы, вероятно, следует добавить * JavaScript * к * яваскрипта * -tagged вопрос. Я знаю, что это в Fiddle, но вы также должны включить его в свой пост. –

+0

Вы используете прослушиватель событий внутри функции, вызываемой 'onClick'. Или я здесь пропал что-то или что-то пошло не так? –

+0

Извините, JSfiddle не должен иметь функцию щелчка. –

ответ

1

$('input:checkbox').on('change', function() { 
 
    var chkd = $('input:checkbox:checked'); 
 
    if(chkd.length == 2) { 
 
     var vals = chkd.map(function() { 
 
      return this.value; 
 
     }) 
 
     .get().join(', '); 
 
     alert(vals); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <input class="1" type="checkbox" name="1" value="1"/>1 
 
    <input class="2" type="checkbox" name="2" value="2"/>2 
 
    <input class="3" type="checkbox" name="3" value="3"/>3 
 
    <input class="4" type="checkbox" name="4" value="4"/>4 
 
</form>

UPDATE

$(function() { 
    $('#myButton').on('click', function() { 
     var text = $('input[name=somename]').val(); 
     var chkd = $('input:checkbox:checked'); 
     var vals = chkd.map(function() { 
      return this.value; 
     }) 
     .get().join(', '); 
     alert("Name: " + text + "\n" + "Checkbox: " + vals); 
    }); 
}); 

DEMO

+0

Спасибо большое :) –

+0

Рад, что вы нашли это полезным :-) Наслаждайтесь! – PeterKA

+0

Также, как применить эту функцию к оповещению()? Этот код был образцом, который я делаю. Проект, над которым я работаю, отображает несколько значений в alert(). На данный момент это выглядит так: 'alert (" Name: "+ name +" \ n "+" Add: "+ add())' Но он запускает функцию add(), а затем alert() и «Добавить:» не определено. Надеюсь, это имеет смысл :) –

1

function add() { 
 
    var checked = ''; 
 
    $(':checked').each(function() { 
 
    checked += $(this).val() + ','; 
 
    }); 
 
    console.log(checked); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<input class="1" type="checkbox" name="1" value="1" onclick="add()">1 
 
<input class="2" type="checkbox" name="2" value="2" onclick="add()">2 
 
<input class="3" type="checkbox" name="3" value="3" onclick="add()">3 
 
<input class="4" type="checkbox" name="4" value="4" onclick="add()">4

1

Вы можете просто сделать, как показано ниже.

$(':checkbox').click(function() { 
    alert($(':checkbox:checked').map(function() { 
     return this.value; 
    }).get()); 
}); 

The demo.

+0

Огромное спасибо :) –

0

Еще один способ заключается в следующем:

$("input[type='checkbox']").change(function() { 
 
    $(':checked').each(function() { 
 
    alert($(this).val()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="footboard" type="checkbox" name="1" value="1">1 
 
<input class="drawers" type="checkbox" name="2" value="2">2 
 
<input class="casters" type="checkbox" name="3" value="3">3 
 
<input class="squeak" type="checkbox" name="4" value="4">4

Смежные вопросы