简体   繁体   English

将HAML simple_form与javascript连接

[英]Connecting HAML simple_form with javascript

I have something like this: 我有这样的事情:

  = f.input :payment_date, as: :date
  = f.input :tuitor, as: :boolean, label: 'Tuitor payment'

and I want use on this a simple JavaScript like this: 我想在此使用简单的JavaScript,例如:

costam = ->
if document.getElementById('datet').checked is true
  document.getElementById('pdate').disabled = false
else
  document.getElementById('pdate').disabled = true
return

How I can put 'datet' and 'pdate' in my HAML form? 如何在HAML表单中放入“ datet”和“ pdate”? I was trying options like 我正在尝试像

:id => "pdate"

or 要么

id: :pdate

but it's not working. 但它不起作用。

Looks like you have to use input_html : 看来您必须使用input_html

= f.input :payment_date, as: :date, input_html: { id: "datet" }
= f.input :tuitor, as: :boolean, label: 'Tuitor payment', input_html: { id: "pdate" }

In regards your javascirpt, you'd be much better using variables: 关于您的javascirpt,使用变量会更好:

costam = ->
  datet = document.getElementById('datet')
  pdate = document.getElementById('pdate')

  pdate.disabled = !datet.checked

You can see a working JSFiddle here: 您可以在这里看到正在运行的JSFiddle

var changer = function() {
  var datet, pdate;
  datet = document.getElementById('datet');
  pdate = document.getElementById('pdate');
  pdate.disabled = !datet.checked;  
};

$(document).ready(changer);
$("#datet").on("change", changer);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM