简体   繁体   English

将输入附加到正确的类别JQUERY

[英]Append input to the correct category JQUERY

I want the items I add to go under the correct category and only one at a time. 我希望添加的项目属于正确的类别,并且一次只能包含一个。 But it appears I get products going into the dairy and fruit section at the same time. 但看来我同时将产品运入乳制品和水果部门。 Can anyone please assist me? 谁能帮我吗? Here is my code: 这是我的代码:

 $('#catty').change(function () { if ($(this).val() == 'Dairy') { $('#product-info').keydown(function (e) { if (e.keyCode == 13) { var add = $('#product-info').val(); $('.dairy-product').append('<li>' + add + '</li>'); } }) } }); $('#catty').change(function () { if ($(this).val() == 'Fruits') { $('#product-info').keydown(function (e) { if (e.keyCode == 13) { var add = $('#product-info').val(); $('.fruit-product').append('<li>' + add + '</li>'); } }) } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="catty" class="form-control" value="Select"> <option hidden >Select Catergory</option> <option>Dairy</option> <option>Frozen Foods</option> <option>Fruits</option> <option>Vegetables</option> </select> <div class="form-group"> <input type="text" class="form-control" id="product-info" placeholder="Item Name"> </div> <button type="button" id="btn1" class="btn btn-primary">Add Item</button> </form> </div> <div class="panel-group col-xs-12"> <div class="category"> <div class="my-panel parent"> <p class="description" id="dairy">Dairy</p> <a href="#" class="add-item"> <i class="fa fa-plus-circle" aria-hidden="true"></i> </a> </div> <ol class="dairy-product"></ol> </div> <div class="category"> <div class="my-panel parent"> <p class="description" id="fruits">Fruits</p> <a href="#" class="add-item"> <i class="fa fa-plus-circle" aria-hidden="true"></i> </a> </div> <ol class="fruit-product"></ol> </div> 

 $('#product-info').keydown(function(e) { var selectid = $('#catty option:selected').text().toLowerCase() if (e.keyCode == 13) { var add = $('#product-info').val(); $("."+selectid +'-product').append('<li>' + add + '</li>'); } }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="catty" class="form-control" value="Select"> <option hidden>Select Catergory</option> <option>Dairy</option> <option>Frozen Foods</option> <option>Fruits</option> <option>Vegetables</option> </select> <div class="form-group"> <input type="text" class="form-control" id="product-info" placeholder="Item Name"> </div> <button type="button" id="btn1" class="btn btn-primary">Add Item</button> </form> </div> <div class="panel-group col-xs-12"> <div class="category"> <div class="my-panel parent"> <p class="description" id="dairy">Dairy</p> <a href="#" class="add-item"> <i class="fa fa-plus-circle" aria-hidden="true"></i> </a> </div> <ol class="dairy-product"></ol> </div> <div class="category"> <div class="my-panel parent"> <p class="description" id="fruits">Fruits</p> <a href="#" class="add-item"> <i class="fa fa-plus-circle" aria-hidden="true"></i> </a> </div> <ol class="fruits-product"></ol> </div> 

  1. Change OL class from fruit to fruits. 将OL类从水果更改为水果。
  2. Dont need to call the change function of the select, just get the current selected value then use it as parameter for the enter key. 不需要调用select的change函数,只需获取当前选择的值,然后将其用作Enter键的参数即可。
  3. Make sure to add validation if nothing was selected in select 如果在选择中未选择任何内容,请确保添加验证

You have two onchange event handlers for the element with id catty . 对于id为catty的元素,您有两个onchange事件处理程序。 And also two event handlers for keydown on the same element in those two onchange handlers. 还有两个事件处理程序,用于在这两个onchange处理程序中的同一元素上进行keydown Modify your code, so your handlers are simplified: 修改您的代码,以便简化处理程序:

$('#product-info').keydown(function(e) {
    if (e.keyCode == 13) {
        var add = $('#product-info').val();
        var value = $("#catty").text(); 
        if(value !== '') {
           $('.' + value.toLowerCase() + '-product').append('<li>' + add + '</li>');
        }
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM