jQuery动态表单
我正在使用jQuery创建动态表单。我只是让它在一个简单的层面上工作,并意识到我可能在做错事。我所拥有的代码在我更改表单值后可以工作(正如您所期望的),但在我第一次加载页面时不起作用:jQuery动态表单,jquery,ruby-on-rails,coffeescript,formatting,conditional,Jquery,Ruby On Rails,Coffeescript,Formatting,Conditional,我正在使用jQuery创建动态表单。我只是让它在一个简单的层面上工作,并意识到我可能在做错事。我所拥有的代码在我更改表单值后可以工作(正如您所期望的),但在我第一次加载页面时不起作用: jQuery -> $(document).ready -> $("#subject_enrolled").change -> if ($("#subject_enrolled").val() is "0") $("
jQuery ->
$(document).ready ->
$("#subject_enrolled").change ->
if ($("#subject_enrolled").val() is "0")
$("#subject_reason_not_enrolled").show()
else
$("#subject_reason_not_enrolled").hide()
return
return
return
我尝试了.live而不是.change(知道这将是一次性能上的成功),但无论如何都没有成功。所以我对下一步很好奇。我想我必须定义一个跟踪状态的函数,并将状态变量添加到每个条件选择/复选框中。这是最好的方法吗?我希望我能够通过jQuery计算所有的更改……但我开始认为这是一种糟糕的形式。要在页面加载后立即运行代码,请创建一个检查条件的函数,例如:
toggleField = ->
if $("#subject_enrolled").val() is "0"
$("#subject_reason_not_enrolled").show()
else
$("#subject_reason_not_enrolled").hide()
return
jQuery ->
$(document).ready ->
/**
* Execute after load
*/
toggleField()
$("#subject_enrolled").on "change", ->
/**
* Execute after change
*/
toggleField()
return
return
return
谢谢,这就是我需要知道的。