在解除绑定后尝试将点击绑定回按钮时遇到问题。
当代码文本字段中有更改事件时,该按钮将解除绑定。更改将检查数据库中是否存在重复。如果没有重复,它将绑定返回单击“保存”按钮,但它不起作用。
jQuery代码
$(document).ready(function() {
$('#glaccountssomgr_save_btn').on('click', submitGLAccount);
$('#glaccountssomgr_acount_code').change(function(event) {
$('#glaccountssomgr_save_btn').off('click', submitGLAccount);
var inputCode = $('#glaccountssomgr_acount_code').val();
$.ajax({
url: '<?php echo Router::url(array('controller' => 'GeneralLedgerAccountsSOMgr', 'action' => 'glaCheckDuplicate', '')); ?>',
data: {code: inputCode},
type: 'POST',
success:function(data)
{
if(data)
{
var dupResults = jQuery.parseJSON(data);
if(dupResults.isDuplicate)
{
$('#glaccountssomgr_save_btn').off('click');
alert("The GL Account is already in use. Please use another Code");
$('#glaccountssomgr_acount_code').focus();
return false;
}
else
{
alert("No duplicate");
//the below does not get call
$('#glaccountssomgr_save_btn').on('click', submitGLAccount);
}
}
else
{
alert("Error in checking GL Account Code. Please try again");
return false;
}
},
error:function(data)
{
alert("Unexpected Error. Please try again");
}
});
});
});
function submitGLAccount()
{
//performs validation checking and data submission
alert("I'm here");
}
保存按钮
<a href="#" id="glaccountssomgr_save_btn" name="glaccountssomgr_save_btn" data-
role="button" data-icon="check" data-inline="true" data-ajax="false" data-theme="b"
data-iconpos="right">Save</a>
如果焦点从“代码”转到其他表单元素,则单击“保存”按钮只会再次重新绑定。
我做错了吗?
答案 0 :(得分:0)
您是否尝试过使用bind和unbind:
$(&#39;#glaccountssomgr_save_btn&#39;)。bind(&#39;点击&#39;,submitGLAccount); $(&#39;#glaccountssomgr_save_btn&#39;)。取消绑定(&#39;点击&#39;,submitGLAccount);
编辑: 您可以将数据传递给事件处理程序
function submitGLAccount(event){
if(event.data.btnstate=='off'){
return false;
}else{
//continue executing the code
}
}
$( "button" ).on( "click", {
btnstate: "off"
}, submitGLAccount);
$( "button" ).on( "click", {
btnstate: "on"
}, submitGLAccount);