2015-06-05 80 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的* JavaScript的* - 标记的问题。我知道这是在小提琴中,但你也需要在你的文章中加入它。 –

+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()中显示多个值。目前看起来像这样: 'alert(“Name:”+ name +“\ n”+“Add:”+ add())' 但它运行add()函数,然后alert 'Add:'未定义。我希望这是有道理:) –

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