当流程请求发布ajax时,如何禁用此表单中的表单(用户无法检查、填写文本、选择下拉菜单等)?
当进程发送post-ajax时,我想禁用表单id="f1"
,我该怎么做?
<script>
function send_requests_data(){
$('#demoajax').hide();
$('#loading').show();
$.ajax({
url: 'test.php',
type: 'POST',
data: $('#f1').serialize(),
success: function(data){
$("#loading").fadeOut("slow");
$('#demoajax').show();
$('#demoajax').html(data);
}
});
return false;
}
// on load page call function code //
$(document).ready(send_requests_data());
</script>
这里可以找到一个可能的答案:禁用div 内的所有表单元素
TL;DR尝试添加以下内容:
$("#parent-selector :input").attr("disabled", true);
到ajax调用,其中父选择器是div或表单id。
试试这个,我希望它能有所帮助:
function send_requests_data(){
$('#id1 input,select').attr('disabled','disbaled');
$('#demoajax').hide();
$('#loading').show();
$.ajax({
url: 'test.php',
type: 'POST',
data: $('#f1').serialize(),
success: function(data){
$("#loading").fadeOut("slow");
$('#demoajax').show();
$('#demoajax').html(data);
$('#id1 input,select').removeAttr('disabled');
}
});
return false;
}
$.each($('input, select ,textarea', '#f1'),function(){
$(this).prop('disabled', true);
});
您可以在调用ajax函数之前先调用以下函数。它将禁用所有表单控件
function disable() {
var limit = document.forms[0].elements.length;
for (i=0;i<limit;i++) {
document.forms[0].elements[i].disabled = true;
}
}