jquery change事件不触发的问题
先定义2个input,目的是把input1的值复制到input2
<input><input>
代码如下
$(":input[name='input1']").bind('change focus blur', function() {
$(":input[name='input2']").val($(this).val());
});
jquery 的change不触发,
不是因为代码不对,是因为input1是jquery直接赋值的,
$(":input[name='input1']").val('AAAAAA');
这样就触发不了,
临时的解决方法是,
$(":input[name='input1']").focus();
$(":input[name='input1']").val('AAAAAA');
$(":input[name='input1']").blur();
==========================================
求更好方法!!!!!或者怎么解决.................
===================================================
附上完整代码.........暂时都没有解决问题
$(function() {
$(":input[name='input1']").bind('change focus blur', function() {
$(":input[name='input2']").val($(this).val());
});
});
var setvalue = function() {
$(":input[name='input1']").val('AAAAAA');
}
<input><input><a>赋值测试</a>
====================================================
已测试 没有问题
jQuery 1.12.4是jQuery 1.x系列的最后一个正式稳定版本,由jQuery团队于2016年发布。该版本主要面向需要兼容旧版浏览器环境的网站和Web应用,尤其适用于仍需支持Internet Explorer 6、Internet Explorer 7、Internet Explorer 8等老旧浏览器的项目。
$(function(){
$(":input[name='bbb']").val('aAAAAAAAA');
$(":input[name='aaa']").bind("change focus blur",function(){
alert($(this).val());
$(":input[name='bbb']").val($(this).val());
});
})
请看问题的补充中的完整代码,你这个测试也复制不了值
input1 的值是jquery 直接赋值,根据你的逻辑,两个的值是一样的,那么就在赋值的同时给input2也赋值就行了
这是代码简化了,实际项目中因为不能去改动第一个模块,所以只能通过监听来解决
你说你不能改动第一个模块,那你这个代码算怎么回事啊
$(":input[name='input1']").focus();
$(":input[name='input1']").val('AAAAAA');//这一段相当于你说的第一个模块,既然你能上下加上两行代码,那为何不直接
$(":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()










