我正在使用嵌套模型形式,如rails cast。 http://railscasts.com/episodes/196-nested-model-form-revised - 这里是 add_fields 咖啡脚本:
$('form').on 'click', '.add_fields', (event) ->
time = new Date().getTime()
regexp = new RegExp($(this).data('id'), 'g')
$(this).before($(this).data('fields').replace(regexp, time))
$(".excelCreator, .videoCreator, .mcCreator").hide()
event.preventDefault()
我有一组三个单选按钮(“excel”+“视频”+“多项选择”)和一个与每个按钮关联的隐藏 div。当我单击单选按钮“视频”时,会在名为 .videoCreator 的 div 中弹出一些表单。“excel”和“multiple_choice”的行为相同。
$(".excelCreator, .videoCreator, .mcCreator").hide()
$(".stepRadio").change ->
$(".excelCreator, .videoCreator, .mcCreator").hide()
$container = $(@).closest('.stepCreator')
$container.find(".excelCreator, .videoCreator, .mcCreator").hide()
if @value is "video"
$container.find(".videoCreator").show()
else if @value is "excel"
$container.find(".excelCreator").show()
else if @value is "multiple_choice"
$container.find(".mcCreator").show()
该行为在这里得到充分说明:http: //jsfiddle.net/ambiguous/2XAP2/
我的问题是,当我单击 .add_fields 按钮时,上述行为不再适用于新添加的字段,并且会动态创建新表单。我单击添加字段按钮 - 会弹出一组新的单选按钮,但是,当我单击三个单选按钮中的任何一个时,它不会显示关联的 div(请记住,我隐藏了所有三个 div,单击添加字段按钮的 - 如果我不隐藏它们,那么所有三个 div 都会同时出现)。但是,在页面上的任何其他字段上,它都可以正常工作(只是在刚刚添加的字段上没有)。
我尝试将以下两种行为结合起来,但这不起作用:
$('form').on 'click', '.add_fields', (event) ->
time = new Date().getTime()
regexp = new RegExp($(this).data('id'), 'g')
$(this).before($(this).data('fields').replace(regexp, time))
$(".excelCreator, .videoCreator, .mcCreator").hide()
$(".stepRadio").change ->
$(".excelCreator, .videoCreator, .mcCreator").hide()
$container = $(@).closest('.stepCreator')
$container.find(".excelCreator, .videoCreator, .mcCreator").hide()
if @value is "video"
$container.find(".videoCreator").show()
else if @value is "excel"
$container.find(".excelCreator").show()
else if @value is "multiple_choice"
$container.find(".mcCreator").show()
event.preventDefault()
任何帮助,将不胜感激