Onchange数据表搜索输入值过滤器

时间:2018-07-25 05:48:40

标签: javascript jquery

我有一个文本字段,并尝试将文本字段值添加到数据表搜索输入字段中,以便它可以基于添加的值进行搜索/过滤,但是即使该值出现在搜索输入字段中,它也不会过滤按下该键,下面是我使用的代码,请告知是否有其他方法可以得到结果。

可在此处搜索示例表

putty

我在这里有一个文本,单击此文本时,我需要“测试数据”值以添加到数据表搜索字段中并对其进行过滤:

   `private void toolStripButton2_Click(object sender, EventArgs e)
    {
        TcpClient client = new TcpClient();
        ModbusIpMaster master = ModbusIpMaster.CreateIp(client);
        client.Connect("192.168.0.1", 502);

        ushort[] offsets = new ushort[4];
        for (int j = 0; j < a; j++)
        {
            string[] numbers = Regex.Split(coordinateLabel[j].Text, @"\D+");
            int index = 0;
            foreach (string value in numbers)
            {
                if (!string.IsNullOrEmpty(value))
                {
                    int i = int.Parse(value);
                    offsets[index] = (ushort)(i);
                    index++;
                }
            }
            master.WriteSingleRegister(0, offsets[1]);
            master.WriteSingleRegister(1, offsets[2]);
            master.WriteSingleRegister(2, (ushort)(variable_Z[j]));
            while (true)
            {
                offsets = master.ReadHoldingRegisters(0, 4);
                if (offsets[3] == 1)
                {
                    master.WriteSingleRegister(0, 0);
                    master.WriteSingleRegister(1, 0);
                    master.WriteSingleRegister(2, 0);
                    while (true)
                    {
                        offsets = master.ReadHoldingRegisters(0, 4);
                        if (offsets[3] == 0)
                        {
                            break;
                        }
                    }
                    break;
                }
            }
        }
        client.Close();
    }`

2 个答案:

答案 0 :(得分:0)

根据标题判断搜索输入是由onchange事件触发的。更改代码中的值不会触发此事件。但是,您可以通过代码自己触发事件。

$('#searchinput').on("change", function(){
  console.log('triggered')
});

$(".addSearch").on("click", function(){
  var Clickvalue = $(this).text();
  $("input").val(Clickvalue).trigger("change");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="searchinput">

<table id="example" class="display" style="width:100%">
    <thead>
        <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Start date</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td class="addSearch">Tiger Nixon</td>
            <td class="addSearch">System Architect</td>
            <td class="addSearch">Edinburgh</td>
            <td class="addSearch">61</td>
            <td class="addSearch">2011/04/25</td>
            <td class="addSearch">$320,800</td>
        </tr>
        <tr>
            <td class="addSearch">Garrett Winters</td>
            <td class="addSearch">Accountant</td>
            <td class="addSearch">Tokyo</td>
            <td class="addSearch">63</td>
            <td class="addSearch">2011/07/25</td>
            <td class="addSearch">$170,750</td>
        </tr>
    </tbody>
</table>

您的测试脚本如下所示。

$("#test").on("click", function(){
  var Clickvalue = $(this).text();
  $("input").val(Clickvalue).trigger("change");
});

答案 1 :(得分:0)

由于您没有提供可复制的示例,因此我做出了很多猜测。甚至无法测试结果。这不是问JS问题的好方法。

但是似乎您想让输入框立即过滤表。您可能希望使用view.xml事件而不是input,所以您无需按Enter键或使输入框失去焦点。

change