如何从两个下拉列表中将一行添加到表中,并在选择时删除

时间:2016-07-21 15:04:52

标签: javascript jquery html

我有两个下拉列表 首先是项目 第二是员工 我需要从第一个下拉列表(项目)中选择值,然后从第二个下拉列表(员工)中选择值 从以下两个下拉列表中将所选值的新行添加到表中 假设我选择 一个人的意见 选择的值从两个下拉列表中删除并插入表中 当从表中删除时添加到下拉列表中 我的代码如下

#include "opencv/highgui.h"
#include "opencv/highgui.hpp"
#include "opencv/cv.h"
#include "opencv/cxcore.h"
#include "opencv/cxcore.hpp"
#include <stdio.h>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{

   Mat image = imread("test.jpg", CV_LOAD_IMAGE_UNCHANGED);
   if (!image.data) //check whether the image is loaded or not
   {
         cout << "Image cannot be loaded." << endl;
   }
   else
   {
        cout<<"Image can be loaded."<<endl;
        cout<<"Size is "<<image.size().height<<","<<image.size().width<<endl;
        namedWindow( "Display window", CV_WINDOW_AUTOSIZE );
        imshow( "Display Image", image );
    }
}

我是如何用jquery做的那样

1 个答案:

答案 0 :(得分:0)

首先,既然你想在选择项目和员工之后立即执行插入,为了确保发生change事件,让我们先在你的两个select中添加一个虚拟选项:

<div> 
    Project : <select id="myproject">
        <option value="">---select---</option>
        <option value="1">one</option>
        <option value="2">two</option>
        <option value="3">three</option>
        <option value="4">four</option>
    </select><br />
    Employees : <select id="myemployee">
        <option value="">---select---</option>
        <option value="1">ahmed</option>
        <option value="2">mohamed</option>
        <option value="3">saiad</option>
        <option value="4">adil</option>
    </select>
</div>

如果要从表中删除行,可能需要另外<td>来执行操作,因此请将表更改为:

<table id="tb">
    <tr><td>ProjectName</td><td>EmployeeName</td><td>Action</td></tr>
</table>

然后创建一个JS函数来进行插入:

function removeAndAdd() {
    var project = $('#myproject option:selected').detach();
    var employee = $('#myemployee option:selected').detach();
    var newproject = '<td class="td-project" data-value="' + project.val() + '">' + project.text() + '</td>';
    var newemployee = '<td class="td-employee" data-value="' + employee.val() + '">' + employee.text() + '</td><td><button class="btn-remove">Remove</button></td>';
    $('#tb').append('<tr>' + newproject + newemployee + '</tr>');
}

此函数将从下拉列表中获取所选值,并在表格中创建一个新行。接下来,将函数绑定到change s的select事件:

$('select').on('change', function(e) {
    if (($('#myproject').val()) && ($('#myemployee').val())) {
        removeAndAdd();
    }
});

最后,当单击“删除”按钮时,从同一行中找到项目和员工,将它们插回到下拉列表中,然后从表中删除该行:

$('#tb').on('click', '.btn-remove', function(e) {
    var row = $(this).closest('tr');
    var project = row.find('.td-project');
    var employee = row.find('.td-employee');
    $('#myproject').append('<option value="' + project.attr('data-value') + '">' + project.text() +'</option>');
    $('#myemployee').append('<option value="' + employee.attr('data-value') + '">' + employee.text() +'</option>');
    row.remove();
});

可以找到完整的演示Here