我有一个表单,其中有一堆字段已设置为只读并使用 jquery 禁用,如下所示:
$('.adminOnlyField').prop('disabled', 'disabled');
$('.adminOnlyField').attr("readonly","true");
我同时使用这两者,因此选择字段对于查看者来说也是只读的。
我想在提交表单之前从表单中删除这些属性,以便其他非禁用字段将进入我的模型。我已经尝试过,但似乎不起作用:
$('.clear_ready_only').click(function(e)
{
e.preventDefault();
$('.adminOnlyField').removeAttr('disabled');
$('.adminOnlyField').removeAttr('readonly');
$('#CardModifysaleForm').submit();
});
我错过了什么吗?我以为这样就可以完成任务了?
谢谢
//以下更改后的完整 JS 功能
$(function () {
var $adminOnly = $('.adminOnlyField');
$adminOnly.prop('disabled',true).prop('readonly',true);
$adminOnly.attr("onclick","return false");
$adminOnly.attr("onkeydown","return false");
$adminOnly.removeClass('required');
$adminOnly.removeClass('date_picker');
$('.clear_ready_only').click(function(e)
{
e.preventDefault();
$adminOnly.prop('disabled',false).prop('readonly',false);
$adminOnly.attr("onclick","return true");
$adminOnly.attr("onkeydown","return true");
$('#CardModifysaleForm').submit();
});
});
最佳答案
首先,您可以使用.prop()对于两者来说,这比 .attr()
更快:
$('.adminOnlyField').prop('disabled',true);
$('.adminOnlyField').prop('readonly',true);
其次,为了提高效率,您应该缓存和链接:
var $adminOnly = $('.adminOnlyField');
$adminOnly.prop('disabled',true).prop('readonly',true);
第三,要回答您的问题,只需打开提交开关即可:
$('.clear_ready_only').click(function(e){
e.preventDefault();
$adminOnly.prop('disabled',false).prop('readonly',false);
$('#CardModifysaleForm').submit();
});
关于javascript - 在表单提交之前从 html 表单元素中删除了 "disabled & ready only"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18666929/