2017-07-03 81 views
0

我有以下的html:jQuery的复选框以限制dinamis

<input type="checkbox" id="perlengkapans" data-stok="[1]" onchange="ambil($(this))"> name item 1 
    <input type="checkbox" id="perlengkapans" data-stok="[4]" onchange="ambil($(this))"> name item 2 
    <input type="checkbox" id="perlengkapans" data-stok="[0]" onchange="ambil($(this))"> name item 3 

的jQuery:

function ambil(x){ 
    var limit = x.data('stok') 
    var cnt = $('#perlengkapans:checked').length 
    if (cnt>limit){ 
     x.prop('checked', '') 
     alert('you can maximum '+ limit) 
    } 
} 

我要显示一个消息"you can maximum <variable_limit_value>",如果股价已经达到了极限。
但它没有显示消息。请帮忙。

+1

'perlengkapans'这个ID应该是唯一的。改为使用类并将其用作选择器 – guradio

+1

问题的声音不清晰。提供更多细节。 –

回答

0

改变输入属性 - onchange="ambil((this))"

而且你的函数 -

function ambil(x) { 
     limit = $(x).data('stok') 
     cnt = $('#perlengkapans:checked').length 
     if (cnt > parseInt(limit,10)) { 
      $(x).prop('checked', '') 
      alert('you can maximum ' + limit) 
     } 
    } 
0

不知道,你与你的代码实现。

但是,这取决于你的代码,以下是更正:

1)在HTML DOM,应该有一个元素只有一个ID。总之id是一个独特的财产。在你的情况下,有三个元素相同的id。需要解决它。

2)将id属性更改为name并访问相同。可以有多个具有相同名称的元素。

更正代码:

所有的
<input type="checkbox" name="perlengkapans" data-stok="[1]" onchange="ambil($(this))"> name item 1 
    <input type="checkbox" name="perlengkapans" data-stok="[4]" onchange="ambil($(this))"> name item 2 
    <input type="checkbox" name="perlengkapans" data-stok="[0]" onchange="ambil($(this))"> name item 3 
<script> 
    function ambil(x){ 
    var limit = x.data('stok') 
    var cnt = $('[name=perlengkapans]:checked').length; // observe what is changed here. 
    if (cnt>limit){ 
    x.prop('checked', '') 
    alert('you can maximum '+ limit)}} 
</script> 
0

首先,ID应该不能重复,逻辑似乎是错误的。尝试下面的内容。

<input type="checkbox" id="perlengkapans1" name="perlengkapans" data-stok="1" value="name item 1" /> 
    <input type="checkbox" id="perlengkapans2" name="perlengkapans" data-stok="4" value="name item 2" /> 
    <input type="checkbox" id="perlengkapans3" name="perlengkapans" data-stok="0" value="name item 3" /> 

在js文件中添加此

$("input[name='perlengkapans']").on("change", function(){ 
    if($("input[name='perlengkapans']":checked").length > $(this).data('stok')) { 
      // Display Alert 
     }    
    }); 
});