Closed apei830 closed 10 years ago
data-change-search=false 即可 默认是数据改变(onchange) 就查
对,我知道这个attr的用意,我的意思是说,如果这样用,实际上会发起2次请求, 一次是input空间失去焦点,一次是搜索按钮的submit 想问下有没有什么手段可以判断这种情况,中断第二次请求
告诉你下 可以使用setTimeout延迟执行 然后如果两次太快 可以cancel下 你试下 (该成功 我合并进来)
你说的我还不是很清楚,但是我用一个变量标示下是否正在执行查询,如果下次进查询方法前就直接判断,有在执行则返回,没有则执行,执行成功把变量还原,这样可行不?
使用setTimeout设置超时时间 这样如果速度很快的话 可以先cancel上一次的调度 然后重新调度 就不会有这个问题了
不过还是没思路,在哪设置timeout?在哪cancel,设置timeout后不就每次正常search都会等待固定时间吗?
测试了几次,每次都是change事件先trigger,所以在下面代码里把submit的回调置为空,并return false,阻止触发默认的表单提交事件 searchForm.find(":input:not(:button,:submit,:reset)").off("change").on("change", function(e) { // avoid double search issue, when you click search button after change any input searchForm.off("submit").on("submit", function() { return false; }); turnSearch(table, searchForm, false); }); 终于解决了这个问题
哦 好 我把我的也改成这个
data-change-search=true 时,鼠标向右侧移到搜索按钮上并点击,会触发2次turnSearch
一次是input控件失去焦点,一次是搜索按钮触发
请问有什么方法能解决这个问题吗?我试了下在 下面代码加off("change")不起作用
searchForm.off("submit").on("submit", function() { turnSearch(table, searchForm, false); searchForm.find(":input:not(:button,:submit,:reset)").off("change") return false; });