在表单提交之前从html表单元素中删除了“disabled& ready only”属性

时间:2013-09-06 21:35:35

标签: javascript jquery disabled-input

我有一个表单,我有一堆字段已经设置为只读并使用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();
    });

});

2 个答案:

答案 0 :(得分:1)

首先,您可以对{8}使用.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();
});

答案 1 :(得分:0)

$('.adminOnlyField').
   prop('disabled', false).
   prop('readonly', false);

应该这样做。