2017-10-18 43 views
-1

我想添加和删除输入字段的禁用属性,但没有.prop()方法的运气。在Ruby输入字段中使用jQuery,利用.prop()方法添加disbaled

这里是在轨道上的HTML /红宝石

`

<div class="input-group"> 
     <span class="input-group-addon"> 
      <input id="scheduled-checkbox" type="checkbox"></input> 
      <!-- checked="<%= !f.object.published_on.nil? %>" disabled="<%= f.object.published? %>" --> 
     </span> 
     <input disabled="" id="scheduled-date" class="form-control" type="date" value="<%= f.object.published_on %>"></input> 
    <%= f.input :published_on, as: :hidden, input_html: { value: f.object.published_on } %> 
    </div> 
</div> 
</div> 
<div class="form-group"> 
    <% if f.object.persisted? %> 
    <%= f.submit I18n.t("rag.update"), name: :submit, value: :update, class: "btn_default_1 add_margin_top form-control" %> 
    <%= f.submit I18n.t("rag.publish_now"), name: :submit, value: :publish, class: "btn_default_1 add_margin_top form-control" %> 
    <% else %> 
    <%= f.submit I18n.t("rag.draft"), name: :submit, value: :draft, class: "btn_default_1 add_margin_top form-control submit", id: :draft %> 
    <%= f.submit I18n.t("rag.publish"), name: :submit, value: :publish, class: "btn_default_1 add_margin_top form-control submit", id: :publish %> 
    <%= f.submit I18n.t("rag.schedule"), name: :submit, value: :schedule, class: "btn_default_1 add_margin_top form-control submit", id: :schedule %> 
    <% end %> 
</div> 

这里是JS

`$("#scheduled-checkbox").change(function() { 

    if ($("#scheduled-checkbox").is(':checked')) { 
     console.log('box is checked'); //checked means PUBLISH submit button is disabled 
     $("#scheduled-date").prop("disbaled:", true); 
     $("#schedule").prop("disbaled:", false); 
     $("#publish").prop("disbaled:", true); 

    } else { 
     console.log('box is unchecked'); //unchecked means SCHEDULE submit button is disbaled 
     $("#scheduled-date").removeAttr('disabled', false); 
     $("#schedule").removeAttr("disbaled:"); 
     $("#publish").removeAttr("disbaled:"); 

     console.log($("#scheduled-date").removeAttr('disabled')); 
    }` 
+0

当你想添加'disabled'时,用'attr(“disabled”,“disabled”)试'attr'而不是'prop''' – uzaif

回答

0

应该有

$("#scheduled-date").prop("disabled", true); 

而不是

$("#scheduled-date").prop("disbaled:", true); 

同样地,对于接下来的两行

0

看看你的代码。你已经设置了'disbaled'而不是'disabled'。所以你可以使用.attr()方法来定义一个jQuery属性,如:

$("#publish").attr("disabled", "disabled"); or $("#publish").attr("disabled", false);

残疾人ATTR不许可获取用户输入的值在POST方法发送,所以你必须设置“只读”属性,像这样:

$("#publish").attr("readonly", "readonly");$("#publish").attr("readonly", false);

或使用.removeAttr( )删除属性

相关问题