【发布时间】:2016-03-04 00:36:16
【问题描述】:
在我的请求 AJAX 中,在发送前我禁用了所有按钮,因为在我看来是更好的安全选择。 成功后,我再次启用所有按钮。但是我的页面中有许多其他按钮,成功请求后我需要重新启动默认禁用状态。
是否有一种方法可以在 beforesend 中设置获取值并在成功后设置此正确的禁用状态?
因为在我的代码中我成功启用了所有按钮,但我需要完全按照之前的请求恢复禁用状态。
在我的简单代码下方。
$.ajax({
url :"/action/controller.php",
type :"POST",
data : data.serialize()
+ '&'
+ encodeURI('action')
+ '='
+ encodeURI(action)
+ '&'
+ encodeURI('tableid')
+ '='
+ encodeURI(tableid)
+ '&'
+ encodeURI('id')
+ '='
+ encodeURI(id),
beforeSend: function(){
//imgload.fadeIn('slow');
$('button').attr('disabled', true);
//console.log ($('button[name="action"]'));
},
success: function(retorno){
//console.log( retorno );
//msg(retorno, 'info');
datagrid();
$('form').unbind('submit').bind('submit');
$('button').attr('disabled', false);
}
html:
<button id="formbutton" type="button" data-action="back" data-tableid="<?php echo $tableid; ?>" data-id="<?php echo $id; ?>" class="btn btn-primary" title="Voltar" value="back">
<span class="glyphicon glyphicon-chevron-left"></span>
</button>
<button id="formbutton" type="button" data-action="new" data-tableid="<?php echo $tableid; ?>" data-id="<?php echo $id; ?>" class="btn btn-primary" title="Novo" value="new">
<span class="glyphicon glyphicon-plus-sign"></span> Novo
</button>
<button id="formbutton" type="submit" data-action="save" data-tableid="<?php echo $tableid; ?>" data-id="<?php echo $id; ?>" class="btn btn-primary" title="Salvar" value="save">
<span class="glyphicon glyphicon-saved"></span> Salvar
</button>
<button id="formbutton" type="submit" data-action="delete" data-tableid="<?php echo $tableid; ?>" data-id="<?php echo $id; ?>" class="btn btn-primary" title="Delete" value="delete">
<span class="glyphicon glyphicon-minus-sign"></span> Excluir
</button>
<button id="formbutton" type="submit" data-action="edit" data-tableid="<?php echo $tableid; ?>" data-id="<?php echo $id; ?>" class="btn btn-primary" title="Editar" value="edit">
<span class="glyphicon glyphicon-edit"></span> Editar
</button>
<button id="formbutton" type="submit" data-action="duplicate" data-tableid="<?php echo $tableid; ?>" data-id="<?php echo $id; ?>" class="btn btn-primary" title="Duplicar" value="duplicate">
<span class="glyphicon glyphicon-duplicate"></span> Duplicar
</button>
<button id="formbutton" type="submit" data-action="next" data-tableid="<?php echo $tableid; ?>" data-id="<?php echo $id; ?>" class="btn btn-primary" title="Proximo" value="next">
<span class="glyphicon glyphicon-chevron-right"></span>
</button>
【问题讨论】:
-
不确定您的问题是什么?
js的哪一部分没有返回预期结果? -
我可以在发送前获得禁用状态,并在成功后正确设置...因为我在发送前有禁用 = true 的按钮。我有一个带按钮的菜单,它们在禁用时具有不同的状态。我可以在请求后恢复默认值
-
是的,
jsat Question 似乎将button元素设置为disabled:truebeforeSend和disabled:falsesuccess。问题中的js是否没有返回预期结果?缺少关闭)$.ajax()? -
在我的脚本中,所有按钮设置成功后都启用,但我需要完全恢复,就像发送前一样。不懂?
-
是的,
jsbeforeSend将所有button元素设置为disabled,因为它使用选择器button。同样在success。您可以在 Question 中包含html吗?您要将哪个特定的button元素设置为disabled到true,然后将false设置为success?
标签: javascript jquery ajax