我有一个jquery按钮,在提交时会被禁用,如果它启用了任何错误。我希望在提交时更改按钮数据,如果有任何错误更改为之前的数据。
$(document).on("click", ".create-user", function (e) {
$(this).html('Please Wait...');
$(".create-user").attr("disabled", true);
// submit form
$.ajax({
type: 'POST',
cache: false,
data: $("#projectsId").serialize(),
url: $("#projectsId").attr('action'),
dataType: 'json',
success: function(data){
if(data.status){
$.pjax.reload({container:"#projectsGrid"});
$('#modal').modal("hide");
}else{
$('#projectsId').yiiActiveForm('updateMessages', data.errors, true);
$(".create-user").attr("disabled", false);
$(this).html('Create');
}
}
});
我提交时会更改为“请稍候”,但如果有错误,则不会更改回“创建”。 很少有答案会有所帮助..谢谢: - )
答案 0 :(得分:0)
只需在您的ajax使用val()
或text()
而非html中添加错误功能
if(data.status){
$.pjax.reload({container:"#projectsGrid"});
$('#modal').modal("hide");
}else{
$('#projectsId').yiiActiveForm('updateMessages', data.errors, true);
$(".create-user").attr("disabled", '');
$(this).text('Create');
$(this).val('Create');
}
答案 1 :(得分:0)
请尝试$('.create-user').prop("disabled", false);
删除已停用的媒体资源。
答案 2 :(得分:0)
您可以拦截错误,就像您在ajax调用中执行命令错误一样成功:
$.ajax({
type: 'POST',
cache: false,
data: $("#projectsId").serialize(),
url: $("#projectsId").attr('action'),
dataType: 'json',
error: function() { .... },
success: function(data){
if(data.status){
$.pjax.reload({container:"#projectsGrid"});
$('#modal').modal("hide");
}else{
$('#projectsId').yiiActiveForm('updateMessages', data.errors, true);
$(".create-user").attr("disabled", false);
$(this).html('Create');
}
}
});