【问题标题】:I am unable to enable and disable the form input fields我无法启用和禁用表单输入字段
【发布时间】:2013-12-02 22:05:23
【问题描述】:

我不知何故无法启用和禁用表单字段

这是我的小提琴 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;
}

请告诉我我做错了什么。

【问题讨论】:

标签: jquery html css forms validation


【解决方案1】:

试试这个

$('#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

【讨论】:

    【解决方案2】:

    表单 ID 应为"myForm"

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

    而不是“#myForm”

    【讨论】:

      【解决方案3】:

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

      根据.prop()的文档——

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

      【讨论】:

        【解决方案4】:

        你的表单标签是这样的:

        <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 #
        

        这会很好用。

        【讨论】:

          【解决方案5】:

          两个问题

          1. 表单 ID 有一个 # - 删除它
          2. 使用.prop()设置禁用状态

          试试

          <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

          【讨论】:

            猜你喜欢
            相关资源
            最近更新 更多
            热门标签