Javascript jquery:使用jquery更改输入值不会';不要影响输入拦截器
伙计们 让我们假设以下代码:Javascript jquery:使用jquery更改输入值不会';不要影响输入拦截器,javascript,jquery,Javascript,Jquery,伙计们 让我们假设以下代码: $(document).ready(function() { var data = 'clients=&categories=&keywords=&limit='+limit; $.ajax({ type: 'POST', url: 'index.php?ind=work&op=get_list', data: data, success: function (data) {
$(document).ready(function() {
var data = 'clients=&categories=&keywords=&limit='+limit;
$.ajax({
type: 'POST',
url: 'index.php?ind=work&op=get_list',
data: data,
success: function (data) {
$('.list').html(data);
$('.thumb').click(function() {
var idz = 'id='+$(this).attr('id');
$.ajax({
type: 'POST',
url: 'index.php?ind=work&op=get_work',
data: idz,
success: function (data) {
$('.client').click(function() {
$('#clients').val($('.client').text());
});
}
});
});
}
});
});
$(document).ready(function() {
$('input').on('change', function(){
var clients = $('#clients').val(),
data = 'clients='+clients;
$.ajax({
type: 'POST',
url: 'index.php?ind=work&op=get_list',
data: data,
success: function (data) { $('.list').html(data);
$('.thumb').click(function() {
var idz = 'id='+$(this).attr('id');
$.ajax({
type: 'POST',
url: 'index.php?ind=work&op=get_work',
data: idz,
success: function (data) {
$('.work').hide().html(data).slideToggle('slow');
}
});
});
}
});
});
});
页面上的某个地方有一个输入和一些图像:
<div class="work"></div>
<input type="text" id="clients" name="clients">
<div class="list">Some thumbnails that call index.php?ind=work&op=get_work</div>
一些调用index.php?ind=work&op=get\u work的缩略图
现在,当我在输入中键入任何内容时,jquery会在更改时截取它,并从get_list函数获取信息。它与.keyup()、.change()、.on('change')和.on('input')完美配合
但是,当我按下客户机名称(span with class=“client”)时,输入的#clients会更改,但列表不会加载
我觉得我错过了一些非常基本的东西:))
谢谢你的提示 如果以编程方式更改文本框的值,则不会触发更改事件 要触发事件,您必须使用change()手动触发事件 更改此代码
$('.client').click(function () {
$('#clients').val($('.client').text());
});
到
如果以编程方式更改文本框的值,则不会触发更改事件 要触发事件,您必须使用change()手动触发事件 更改此代码
$('.client').click(function () {
$('#clients').val($('.client').text());
});
到
我在您的代码中没有看到任何
,但假设它存在,您的错误是设置
元素的值不会触发任何事件,甚至不会触发“输入”或“更改”。这些仅由实际用户操作触发。尝试在单击处理程序中直接触发事件:
$('.client').click(function() {
$('#clients').val($('.client').text());
$('#clients').trigger('change'); // or whatever event you are listening for
});
或者,更简单地说:
$('.client').click(function() {
$('#clients').val($('.client').text()).trigger('change');
});
我在您的代码中没有看到任何
,但假设它存在,您的错误是设置
元素的值不会触发任何事件,甚至不会触发“输入”或“更改”。这些仅由实际用户操作触发。尝试在单击处理程序中直接触发事件:
$('.client').click(function() {
$('#clients').val($('.client').text());
$('#clients').trigger('change'); // or whatever event you are listening for
});
或者,更简单地说:
$('.client').click(function() {
$('#clients').val($('.client').text()).trigger('change');
});
我认为这是因为当输入更改时,您注册了span事件。。。因此,文本在单击跨度时会发生变化,但未注册 您可以在单击发生后注册跨度单击。。。您可以通过在跨度上单击一次,然后再次单击来验证这一点 最好的方法是注册加载上的所有事件,如果不想阻止事件操作,则使用布尔值 比如:
var preventaction = true;
$("#btn1").click(function(){
If (! preventaction) { dostuf(); }
});
我认为这是因为当输入更改时,您注册了span事件。。。因此,文本在单击跨度时会发生变化,但未注册 您可以在单击发生后注册跨度单击。。。您可以通过在跨度上单击一次,然后再次单击来验证这一点 最好的方法是注册加载上的所有事件,如果不想阻止事件操作,则使用布尔值 比如:
var preventaction = true;
$("#btn1").click(function(){
If (! preventaction) { dostuf(); }
});
请共享小提琴。您必须手动触发更改事件请共享小提琴。您必须手动触发更改事件