Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 无法触发绑定事件_Jquery - Fatal编程技术网

Jquery 无法触发绑定事件

Jquery 无法触发绑定事件,jquery,Jquery,我不明白为什么在多次尝试不同的方法后,这个事件没有被触发。我只想通过下拉菜单Category Name将我的事件与第一个输入文本框的值的更改绑定在一起。意味着当我从类别列表中选择A、B或C时,该类别列表将更新为第一个输入,并且事件将通过第一个输入值的更改触发 但我被卡住了,只有当我按下第一次输入的文本字段上的某个键时,我才能打开,但这不是我的要求。我的代码在这里,下面给出了一段代码 <head> <script src="https://ajax.googleapis.

我不明白为什么在多次尝试不同的方法后,这个事件没有被触发。我只想通过下拉菜单Category Name将我的事件与第一个输入文本框的值的更改绑定在一起。意味着当我从类别列表中选择A、B或C时,该类别列表将更新为第一个输入,并且事件将通过第一个输入值的更改触发

但我被卡住了,只有当我按下第一次输入的文本字段上的某个键时,我才能打开,但这不是我的要求。我的代码在这里,下面给出了一段代码

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />    </head>
    <body>
    <div class="col-md-3">  
                    <label>CategoryName</label>
                    <select class="form-control" name="cat_id" id="cat_id">
                        <option>A</option>
                        <option>B</option>
                        <option>C</option>
                    </select>
                </div>
      <div class="col-md-4">
            FIRST Input<input type="text" name="take" id="take" class="form-control" placeholder="Take Value"  />  
                        </div> 
      <div class="col-md-4">
          Give Output<input type="text" name="give" id="give" class="form-control" placeholder="Give Value" />  
     </div>                   
     <script>
                    $(document).ready(function(){  
                     $(function(){
                      $('body').on('click','#cat_id',function(){

                          var s     =$('#cat_id').val();
                          var n = s.lastIndexOf(",");
                          var s2 = s.substring(n + 1);
                          $('#take').val(s2);
                      })
                  });
                   $('#take').bind('input selectionchange propertychange',function(){  alert($('#take').val()); 
                   });
              });  
         </script>

我不明白你到底想要实现什么,如果你想绑定你选择的选项,你应该使用change而不是点击jquery代码

如果您有兴趣绑定文本框,则应使用选择而不是单击

更新

触发事件的一个小例子

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function () {

    var selectedOption = '';
  $("#optionSelect").change(function (e) {
        selectedOption = $( "#optionSelect option:selected" ).text();
        $("#testBtn").trigger("click");
   });

   $("#testBtn").click(function (e){
        $("#first_input").val(selectedOption);
   });

});
</script>
</head>
<body>

<select id="optionSelect">
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>

<button id='testBtn'>Test me</button>

<div id='test'></div>
<input type='text' id='first_input'/>
</body>
</html>
首先,bind已被弃用,我怀疑您之所以使用它,只是因为无法继续工作。您无法使其工作的原因是,更改事件不会仅仅因为在框中进行了更改而触发。它只有在盒子失去焦点后才会触发

因此,如果以编程方式更改框中的值,则根本不会触发更改事件,因为它从一开始就没有焦点

获取所需内容的方法是以编程方式触发更改事件,就像我之前所说的那样,将绑定替换为on,并将单击事件更改为更改事件:

        $(document).ready(function() {
          $(function() {
            $('#cat_id').on('change', function() {

              var s = $('#cat_id').val();
              var n = s.lastIndexOf(",");
              var s2 = s.substring(n + 1);

              $('#take').val(s2).trigger('change');
            })
          });

          $('#take').on('change', function(e) {
            $('#give').val($('#take').val());

          });

        });

为了更清楚地了解变更事件是如何工作的,请看一看。

Sir,我希望当我选择类别名称a、B、C中的任何一个时,该值会进入我更新该值时的第一个输入,我希望触发一个事件……先生,我希望,正如您有选择权一样,当您选择一个选项时,该选项的值进入一个输入框,在输入框值更新/更改的瞬间,一个事件将随着该输入框值的更改而触发,我希望您理解它?@Newbees因此触发它!但是你必须自己做。这个答案就是你想要的概念,适用于不同的情况。也许在这个答案和我的答案之间,你会找到答案的是的,我注意到,我更改了警报,将值放在文本框中,而不是标题。我非常感谢您的时间和努力,但问题已经解决。非常感谢,最后我解决了我的问题…请投票支持我的问题。