0

好的,所以我有一个 select 语句需要在 javascript 中填充一个循环。我对JS有非常非常基础的知识。我在这里使用了一些非常基本的冷融合。问题是一个是客户端,另一个是服务器端。

我需要第一个 select 语句来循环遍历我的 cfloop 在 javascript 中的位置。我需要以某种方式将其更改为 javascript 循环(其中显示 $(document).ready(function(){)。我不知道该怎么做。有人可以帮忙吗?

    <cfoutput>

    <script type='text/javascript' src='/jquery-1.8.2.js'></script>
    <script type="text/javascript">
    function changeHiddenInput (objDropDown)
    {
        var objHidden = document.getElementById("hiddenInput");
        objHidden.value = objDropDown.value; 
    }

    </script>
    </head>
    <body>

    <cfquery name="Types" datasource="DSN">
    SELECT  Taking.*, Type.*
    FROM    Taking 
    INNER JOIN  Type ON Taking.Taking_TypeID = Type.Type_ID
    ORDER BY    Type_ID
    </cfquery>

    <form>How many to change?
       <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)">
        <cfloop index="ABC" from="1" to="12" step="1">
            <option value="#ABC#">#ABC#</option>
        </cfloop>
       </select>

       <input type="text" name="hiddenInput" id="hiddenInput" value="" />
    </form>

    <br>
    <br>
    <cfset Changing=4>
    <script type="text/javascript">
    $(document).ready(function(){
    <cfloop index="I" from="1" to="#Changing#" step="1">
    $('.box#I#').hide();
     $('##dropdown#I#').change(function() {
       $('.box#I#').hide();
       $('##div' + $(this).val()).show();
    });
    </cfloop>
    });
    </script>

    <form>
    <cfloop index="J" from="1" to="#Changing#" step="1">
    <select id="dropdown#J#" name="dropdown#J#">
    <option value="0">Choose</option>
        <cfloop query="Types" startrow="1" endrow="#Types.recordcount#">
            <option value="area#J##Type_ID#">Change over #Type_Name#</option>
    </cfloop>
    </select>
    <br>

    <cfloop query="Types" startrow="1" endrow="#Types.recordcount#">
    <div id="divarea#J##Type_ID#" class="box#J#">

        <cfquery name="GetQuestions" datasource="DSN">
        SELECT  Questions.*
        FROM    Questions 
        WHERE   Questions_OrgID=1
        AND     Questions_TypeID=#Types.Type_ID#
        ORDER BY    Questions_Rank
        </cfquery>

        <cfloop query="GetQuestions">
            #Questions_Question#<br>
        </cfloop>

    </div>
    </cfloop>
    <br>
    <br>
    </cfloop>

    </form>
    </cfoutput>
4

1 回答 1

0

我不完全确定您要做什么。但是,您可以像这样转:

$(document).ready(function(){
    <cfloop index="I" from="1" to="#Changing#" step="1">
    $('.box#I#').hide();
     $('##dropdown#I#').change(function() {
       $('.box#I#').hide();
       $('##div' + $(this).val()).show();
    });
    </cfloop>
    });

变成这样的东西:

$(document).ready(function(){
    for (var i = 1; i <= #Changing#; i++) 
    { 
        $('.box' + i).hide();
        $('##dropdown' + i).change(function() {
            $('.box' + i).hide();
            $('##div' + $(this).val()).show();
        });
    }
});

更新:实际上听起来它完全是一个 JS 解决方案?

function changeHiddenInput (objDropDown) {
    for (var i = 1; i <= objDropDown.value; i++) 
        { 
            $('.box' + i).hide();
            $('##dropdown' + i).change(function() {
                $('.box' + i).hide();
                $('##div' + $(this).val()).show();
            });
    }
}
于 2013-07-25T15:54:53.617 回答