Jquery 无法触发绑定事件
我不明白为什么在多次尝试不同的方法后,这个事件没有被触发。我只想通过下拉菜单Category Name将我的事件与第一个输入文本框的值的更改绑定在一起。意味着当我从类别列表中选择A、B或C时,该类别列表将更新为第一个输入,并且事件将通过第一个输入值的更改触发 但我被卡住了,只有当我按下第一次输入的文本字段上的某个键时,我才能打开,但这不是我的要求。我的代码在这里,下面给出了一段代码Jquery 无法触发绑定事件,jquery,Jquery,我不明白为什么在多次尝试不同的方法后,这个事件没有被触发。我只想通过下拉菜单Category Name将我的事件与第一个输入文本框的值的更改绑定在一起。意味着当我从类别列表中选择A、B或C时,该类别列表将更新为第一个输入,并且事件将通过第一个输入值的更改触发 但我被卡住了,只有当我按下第一次输入的文本字段上的某个键时,我才能打开,但这不是我的要求。我的代码在这里,下面给出了一段代码 <head> <script src="https://ajax.googleapis.
<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因此触发它!但是你必须自己做。这个答案就是你想要的概念,适用于不同的情况。也许在这个答案和我的答案之间,你会找到答案的是的,我注意到,我更改了警报,将值放在文本框中,而不是标题。我非常感谢您的时间和努力,但问题已经解决。非常感谢,最后我解决了我的问题…请投票支持我的问题。