【问题标题】:jQuery dynamic formsjQuery动态表单
【发布时间】:2014-03-22 06:02:48
【问题描述】:

我正在使用 jQuery 制作动态表单。我只是让它在一个简单的层面上工作,并意识到我可能做错了。更改表单值后我的代码可以工作(如您所料),但是当我第一次加载页面时它不起作用:

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 计算所有的变化......但我开始认为这是一种糟糕的形式。

【问题讨论】:

    标签: jquery ruby-on-rails coffeescript formatting conditional


    【解决方案1】:

    要在页面加载后立即运行代码,请创建一个检查条件的函数,例如:

    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
    

    【讨论】:

    • 谢谢,这正是我需要知道的。
    猜你喜欢
    • 2015-01-27
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2016-01-20
    • 2011-10-29
    • 2011-09-29
    相关资源
    最近更新 更多