登录  /  注册
首页 > web前端 > js教程 > 正文

jquery:change事件不触发问题的解决办法

黄舟
发布: 2018-05-18 15:47:34
原创
9828人浏览过

jquery change事件不触发的问题
先定义2个input,目的是把input1的值复制到input2

<input name="input1" />
<input name="input2" />
登录后复制

代码如下

$(":input[name=&#39;input1&#39;]").bind(&#39;change focus blur&#39;, function() {
$(":input[name=&#39;input2&#39;]").val($(this).val());
});
登录后复制

jquery 的change不触发,
不是因为代码不对,是因为input1是jquery直接赋值的,

$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);
登录后复制

这样就触发不了,
临时的解决方法是,

$(":input[name='input1']").focus();
$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);
$(":input[name='input1']").blur();
登录后复制

==========================================
求更好方法!!!!!或者怎么解决.................

===================================================

附上完整代码.........暂时都没有解决问题

$(function() {
$(":input[name=&#39;input1&#39;]").bind(&#39;change focus blur&#39;, function() {
$(":input[name=&#39;input2&#39;]").val($(this).val());
});
});
var setvalue = function() {
$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);
}
<input name="input1" />
<input name="input2" />
赋值测试
登录后复制

====================================================

已测试 没有问题

$(function(){
 
 $(":input[name=&#39;bbb&#39;]").val(&#39;aAAAAAAAA&#39;);
 
 $(":input[name=&#39;aaa&#39;]").bind("change focus blur",function(){
 
  alert($(this).val());
 
  $(":input[name=&#39;bbb&#39;]").val($(this).val());
 
 });
 
})
登录后复制

请看问题的补充中的完整代码,你这个测试也复制不了值

input1 的值是jquery 直接赋值,根据你的逻辑,两个的值是一样的,那么就在赋值的同时给input2也赋值就行了

这是代码简化了,实际项目中因为不能去改动第一个模块,所以只能通过监听来解决

你说你不能改动第一个模块,那你这个代码算怎么回事啊

$(":input[name='input1']").focus();
$(":input[name=&#39;input1&#39;]").val(&#39;AAAAAA&#39;);//这一段相当于你说的第一个模块,既然你能上下加上两行代码,那为何不直接
$(":input[name='input2']").val('AAAAAA');
$(":input[name='input1']").blur();
登录后复制

能不纠结这个问题么?
这个是临时解决方案,临时的,要改回去的,
不然我来问这个问题干嘛!!! 直接赋值谁不会

$("input").first().keyup(function(){
$(this).next().val($(this).val());
});
登录后复制

根本就捕获不到事件,因为根本不会在input1上按键盘,
input1里的值,是通过ajax加载的,现在想通过事件复制到input2,而不是在ajax代码里

只需change

$("input").first().change(function(){   $(this).next().val($(this).val());});
// ajax改值
$("input").first().change()
登录后复制

以上就是jquery:change事件不触发问题的解决办法的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号