我无法启用和禁用表单输入字段

时间:2013-11-19 11:18:57

标签: jquery html css forms validation

我无法设法启用和禁用表单字段

这是我的小提琴 http://jsfiddle.net/cancerian73/YsRwH/

.edit-profile-text{
   font: bold 12px/12px Verdana, Geneva, sans-serif;
   color: #5a5b5b; margin:10px 0 30px 0; 
   background:url(../images/icons/edit-profile2.png) no-repeat 0 0; 
   padding:0 0 0 30px; 
   min-height:16px;
}

请告诉我我做错了什么。

5 个答案:

答案 0 :(得分:2)

你形成标签是这样的:

<form name="myForm" method="post" action="" id="#myForm" data-validate="parsley">

在此表单中,您已在ID中添加了#,并且它将起作用。

<form name="myForm" method="post" action="" id="myForm" data-validate="parsley">
                                               ^^^ from here remove #

这将很好。

答案 1 :(得分:1)

两个问题

  1. 表单ID有# - 将其删除
  2. 使用.prop()设置已禁用状态
  3. <form name="myForm" method="post" action="" id="myForm" data-validate="parsley">
    

    var form = $("#myForm");
    $('#edit').click(function (event) {
        event.preventDefault();
        form.find(':disabled').prop('disabled', false);
    });
    
    $('#cancel').click(function (event) {
        event.preventDefault();
        form.find(':enabled').prop("disabled", true);
    })
    

    演示:Fiddle

答案 2 :(得分:0)

试试这个

$('#edit').click(function (event) {
    event.preventDefault();
  $('input,select').each(function () {
        $(this).removeAttr('disabled');
    });
});

$('#cancel').click(function (event) {
    event.preventDefault();
    $('input,select').each(function () {
        $(this).attr("disabled", "disabled");
    });
})

Fiddle

答案 3 :(得分:0)

使用.prop()代替.attr()

根据.prop() -

的文件
  

属性通常会影响DOM元素的动态状态,而不会更改序列化的HTML属性。示例包括输入元素的value属性,输入和按钮的disabled属性或复选框的checked属性。应该使用.prop()方法来设置disabled和checked而不是.attr()方法。应该使用.val()方法来获取和设置值。

答案 4 :(得分:0)

表单ID应为"myForm"

<form name="myForm" method="post" action="" **id="myForm"** data-validate="parsley">

而不是'#myForm'