如何在aui脚本的提交事件中停止提交表单
how to halt form submission in on submit event of aui script
这是我的 ai 脚本。转到成功部分后,状态变量设置为 0
。但在此之后的情况
if(status == 0)
未在块 if(starttime.length > 0 || endtime.length > 0)
内执行。
A.one('#<portlet:namespace/>addBooking').on('submit', function(event) {
var roomIndex =A.one("#<portlet:namespace/>roomIndex").get('value');
var bookingdate =A.one("#<portlet:namespace/>bookingdate").get('value');
var starttime =A.one("#<portlet:names`enter code here`pace/>starttime").get('value');
var endtime =A.one("#<portlet:namespace/>endtime").get('value');
var status=1;
if(starttime.length > 0 || endtime.length > 0) {
A.io.request('${bookingValidationURL}',{
dataType: 'json',
method: 'POST',
data: { <portlet:namespace/>roomIndex: roomIndex,
<portlet:namespace/>starttime: starttime,
<portlet:namespace/>endtime: endtime,
},
on: {
success: function() {
var data = this.get('responseData');
if(data==null){
status="0";
}
}
}
});
if(status==0){ // this condition is not checked when status is 0 in success part
event.halt();
}
}
});
Ajax 是异步的..所以为了完成同步任务,我们必须在 ajax 函数中设置 sync=true...所以对于上面的代码
A.io.request('${bookingValidationURL}',{
dataType: 'json',
method: 'POST',
sync : true, // this is the change
data: { <portlet:namespace/>roomIndex: roomIndex,
<portlet:namespace/>starttime: starttime,
<portlet:namespace/>endtime: endtime,
},
on: {
success: function() {
var data = this.get('responseData');
if(data==null){
status="0";
}
}
}
});
这是我的 ai 脚本。转到成功部分后,状态变量设置为 0
。但在此之后的情况
if(status == 0)
未在块 if(starttime.length > 0 || endtime.length > 0)
内执行。
A.one('#<portlet:namespace/>addBooking').on('submit', function(event) {
var roomIndex =A.one("#<portlet:namespace/>roomIndex").get('value');
var bookingdate =A.one("#<portlet:namespace/>bookingdate").get('value');
var starttime =A.one("#<portlet:names`enter code here`pace/>starttime").get('value');
var endtime =A.one("#<portlet:namespace/>endtime").get('value');
var status=1;
if(starttime.length > 0 || endtime.length > 0) {
A.io.request('${bookingValidationURL}',{
dataType: 'json',
method: 'POST',
data: { <portlet:namespace/>roomIndex: roomIndex,
<portlet:namespace/>starttime: starttime,
<portlet:namespace/>endtime: endtime,
},
on: {
success: function() {
var data = this.get('responseData');
if(data==null){
status="0";
}
}
}
});
if(status==0){ // this condition is not checked when status is 0 in success part
event.halt();
}
}
});
Ajax 是异步的..所以为了完成同步任务,我们必须在 ajax 函数中设置 sync=true...所以对于上面的代码
A.io.request('${bookingValidationURL}',{
dataType: 'json',
method: 'POST',
sync : true, // this is the change
data: { <portlet:namespace/>roomIndex: roomIndex,
<portlet:namespace/>starttime: starttime,
<portlet:namespace/>endtime: endtime,
},
on: {
success: function() {
var data = this.get('responseData');
if(data==null){
status="0";
}
}
}
});