jquery逻辑不起作用

时间:2013-01-16 23:42:59

标签: jquery html logic

我有以下代码和我想要的逻辑如下:

  1. 用户无法选择两项运动。用户可以在数据库中保存运动,并且考虑到这一点,将加载和显示数据库记录,并且允许用户添加额外的运动,只要它们没有出现在列表中。现在我已将Baseball设置为来自数据库但是当我再次选择它时,我的逻辑允许用户再次添加它。我做错了什么?
  2. JSFIDDLE:http://jsfiddle.net/Jrqqq/

         var allVals = [{ id: 1, value: "Baseball"}];
    
         $.each(allVals, function (k, v) {
             $("#results").append("<label class=\"wList\"><input checked=\"checked\" class=\"wList-chk\" name=\"wList[]\" type=\"checkbox\" value=\""
             + v.id
             + "\">"
             + v.value
             + "</label>");
         });
    
         $(function () {
             var sports = [{ id: 1, value: "Baseball" },
                        { id: 2, value: "Soccer" },
                        { id: 3, value: "Basketball" },
                        { id: 4, value: "Volleyball" },
                        { id: 5, value: "Tennis" },
                        { id: 6, value: "Running" },
                        { id: 7, value: "Swimming"}];
    
             $("#sports").autocomplete({
                 source: sports,
                 select: function (event, ui) {
    
                     if ($.inArray(ui.item.id, allVals) == -1) {
                         allVals.push(ui.item.id);
                         $("#results")
                                     .append("<label class=\"wList\"><input checked=\"checked\" class=\"wList-chk\" name=\"wList[]\" type=\"checkbox\" value=\""
                                     + ui.item.id
                                     + "\">"
                                     + ui.item.value
                                     + "</label>");
                         $('input.wList-chk[type="checkbox"][value="' + ui.item.id + '"]').parent().effect('highlight', {}, 1500);
                         ui.item.value = "";
                     }
                     else {
                         ui.item.value = "";
                         $('input.wList-chk[type="checkbox"][value="' + ui.item.id + '"]').parent().effect('highlight', {}, 1500);
                     }
                 }
             });
         });
    
         $(document).on("change", ".wList-chk", function () {
             if ($(this).attr('checked')) {
                 return;
             } else {
                 var thisVal = $(this).val();
                 var index = $.inArray(thisVal, allVals);
                 allVals.splice(index, 1);
                 $(this).parent('.wList').remove();
             }
         });
    

1 个答案:

答案 0 :(得分:1)

看起来你没有将棒球ID添加到allVals数组。

相关问题