如果检查我的更改事件是否被触发,如果我需要发送真的,如果不是我需要发送假..
$("#selectid").change(function(){
});
我需要检查此事件是否被触发..?
感谢
答案 0 :(得分:1)
var didF=false;
$("#selectid").change(function(){
didF=true;
});
...
if (didF) {
...
}
答案 1 :(得分:1)
您在问题中包含的代码行将函数(回调或处理程序)绑定到ID为change
的元素的selectid
事件。你想确定你的回叫是否会被激活?
如果是这种情况,有多种选择。如果您正在使用Firebug或其他调试器,则可以在回调中的某处放置断点。您还可以使用debugger;
关键字将断点“硬编码”到特定位置,如下所示:
$("#selectid").change(function(){
debugger;
});
查看回调触发时最基本的方法是使用alert
代替调试器语句:
$("#selectid").change(function(){
alert("It fired!";
});
我不确定你对“发送真或假”的意思。
答案 2 :(得分:1)
我认为这与您的其他问题有关。我在那个问题上更新了我的答案,因为你在那里问过它,但我想我也会在这里发布答案。
跟踪修改哪些表单元素的一种方法是.data()
。
var array;
$("#fieldset").change(function(event) {
$(event.target).data('changed',true);
});
$("form").submit(function() {
array = $(this).find("input, select,textarea").map(function() {
var $th = $(this);
if( $th.data('changed') ) return $(this).val();
}).get();
alert(array);
return false;
});
答案 3 :(得分:1)
如果事件已从处理程序外部触发,则无法可靠检查。
我假设您正在寻找以下内容:
var changed = false;
$("#selectid").change(function(){
changed = true;
});
if (changed) {
doSomething();
} else {
doSomethingElse();
}
但是,除非用户非常快(并且浏览器速度仍然不快),if
将在{{{}>之前评估 long 1}}处理函数实际上是被调用的。因此,change
将被称为99.99999999999999%的时间。
但是,您可以将相同的人为输入延迟纳入您的方法。而不是对变更进行后期测试,从一开始就假设没有发生任何变化。然后,在doSomethingElse
处理程序中包含您的true
脚本。但是,关键是处理处理程序中更改事件的所有依赖项。
change
但是,我害怕,不知道你需要完成什么,我不能再具体了。