jquery事件方法获取输入

Posted

技术标签:

【中文标题】jquery事件方法获取输入【英文标题】:jquery event method to get input 【发布时间】:2021-09-21 02:06:43 【问题描述】:

我使用 jquery 根据下拉值获取“id”作为输入值。现在的问题是,我想使用“id”将值插入到其他一些输入中。我不知道要使用哪种事件方法。为了测试,我使用 keyup 方法检查代码是否有效,当我手动输入数字时,它有效。所以问题出在我选择的事件方法上。请给我一些建议。

    //Get id
     $(document).ready(function() 
        $('#salary_eid').change(function() 
            var sid = $(this).val();
            var data_String = 'sid=' + sid;
            $.get('search1.php', data_String, function(result) 

                $.each(result, function()
                  $('#can').val(this.c_id);
          
                    
                );
            );       
          );

      //display other information
      $('#can').change(function() 
            var id = $(this).val();
            var data_String1 = 'id=' + id;
            $.get('search.php', data_String1, function(result1) 

                $.each(result1, function()
                  $('#morning_rate').val(this.cMorning);
                    $('#night_rate').val(this.cNight);
                    $('#ot_rate').val(this.clientOt);
                    
                );
            );
        );
    );

 <label>Name</label>
 <input type="text" name="salary_eid" />
 <select id="salary_eid">
  <option>opt1</option>
  <option>opt2</option>
 </select>
    
 <input type="hidden" name="can" id="can" class="form-control" >

【问题讨论】:

我不太确定您要达到的目标,但听起来“更改”事件可能会满足您的需求? 更改事件不能正常工作@User1010 您能否说明您的问题? 我能够在#can 输入上显示 id,但从那里我不能使用从第一个 jquery 代码获得的 ID 来执行第二个代码。 在下拉列表中,将选择一个名称,然后它应该从另一个表中获取 Id 并将其显示在隐藏的#can 输入上,然后使用#can,我应该能够显示其他信息。所以这一切都应该在我选择名字时发生 【参考方案1】:

您可以从 id 代码触发 keyup() 事件,这将通过手动或 jQuery 编辑来工作,

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>  
    //Get id
    $(document).ready(function() 
        $('#salary_eid').change(function() 
            var sid = $(this).val();
            $('#can').val(sid).keyup();
        );       
    );
    
    //display other information
    $(document).on('keyup', '#can', function() 
        console.log($(this).val())
    );
</script>

<label>Name</label>
<input type="text" name="salary_eid" />
<select id="salary_eid">
    <option>opt1</option>
    <option>opt2</option>
</select>

<input type="text" name="can" id="can" class="form-control" />

如果您要隐藏第二个输入,那么我可能会建议使用不带输入的函数,

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

<script>  
    //Get id
    $(document).ready(function() 
        $('#salary_eid').change(function() 
            var sid = $(this).val();
            display_info(sid)
        );       
    );
    
    //display other information
    function display_info(value) 
        console.log(value)
    ;
</script>

<label>Name</label>
<input type="text" name="salary_eid" />
<select id="salary_eid">
    <option>opt1</option>
    <option>opt2</option>
</select>

【讨论】:

但是如果不手动输入#can 输入的值,我该怎么做呢?输入将被隐藏。所以当我选择一个名字时,它应该会自动获取id到#can输入,然后使用id来显示信息。 如果要隐藏该字段,那么为什么要使用不同的字段?为什么不从 id 函数中触发函数呢? ***.com/questions/68259929/… - 这是我的问题

以上是关于jquery事件方法获取输入的主要内容,如果未能解决你的问题,请参考以下文章

表单事件(jQuery)

Jquery 获取元素上绑定的事件

如何在按键事件后获取 jQuery .val()?

jquery绑定事件on()方法

jQuery事件对象的属性和方法

jQuery事件对象的属性和方法