2015-06-05 171 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