我有两个隐藏的输入字段,当有onchange事件时会被更改。这会在加载时填充动态信息
angular.module('starter.services', [])
.service('SocketService', ['socketFactory'],
function SocketService(socketFactory) {
return socketFactory({
ioSocket: io.connect('http://l92.168.1.27:3000')
});
});
这个是空值和名称
<input type="hidden" id="setter" name="{{$value['name']}}" value="{{$field['values'][$value['name']]}}">
这是我的js代码
<input type="hidden" id="old_setter" name="" value="">
问题是当隐藏的setter从可见的setter获得输入时没关系,但之后当隐藏的setter上有另一个onchange事件时也会更新,但我只想更新第一个onchange事件。提前致谢
答案 0 :(得分:1)
您必须在事件之外(在全局范围内)定义oldSet
变量,否则它将在用户所做的每次更改时返回false
,并始终达到条件:
var oldSet = false;
$('.select2').each(function (i, obj) {
if (!$(obj).data("select2"))
{
$(obj).select2();
}
}).change(function () {
var setter = $("#setter");
var oldSetter = $("#old_setter");
if (oldSet != true) {
oldSetter.val('');
oldSetter.attr('name', setter.attr('name'));
setter.val(($(this).val()));
setter.attr('name', ($(this).attr('id')));
oldSet = true;
}else {
setter.val(($(this).val()));
setter.attr('name', ($(this).attr('id')));
oldSet = true;
}
});
希望这有帮助。
答案 1 :(得分:0)
在第一个事件之后将on change处理程序设置为空函数。
$('.select2').change(function(){});