我正在使用以下代码:

 <div class="filled dropdown">
            <form>
                <div class="multiple-wrapper dropdown">
                    <input type='checkbox' id='goption14' name="Questions" onclick='addQuestion();' value='14'><label for="goption14" class="checkbox">Able to handle short-term expenses?</label>
                    <div class="question-boxes inner-wrapper">
                        <input type="checkbox" id="checkbox1"><label for="checkbox1">Acid Ratio</label>
                        <input type="checkbox" id="checkbox2"><label for="checkbox2">Cash Ratio</label>
                        <input type="checkbox" id="checkbox3"><label for="checkbox3">Current Ratio</label>
                        <input type="checkbox" id="checkbox4"><label for="checkbox4">Net Working Capital</label>
                    </div>
                </div>
            </form>
</div>


这是当我单击“能够处理短期费用”标签时的样子:
Image

现在,我要尝试的是单击此标签时调用“ addQuestion”函数。但是,由于我将所有内容包裹在其中:

 <div class="multiple-wrapper dropdown">


它似乎无法达到:

 <input type='checkbox' id='goption14' name="Questions" onclick='addQuestion();'...


因此,它没有调用旨在增加“问题”计数器并在“能够处理短期费用”标签左侧添加边框的“ addQuestion”函数。

单击“能够处理短期费用”标签,同时在此处选中复选框时,是否有办法让我仍然能够获得此下拉菜单和包装器:

<input type='checkbox' id='goption14' name="Questions" onclick='addQuestion();'...


并调用其onclick方法“ addQuestion”?

最佳答案

由于您没有显示完整的代码,因此我怀疑您是在全局范围内无法访问的位置编写addQuestion()函数。

这意味着,如果您使用的是jQuery,则您的addQuestion()可能会包裹在$(document).ready()的内部,从而使addQuestion()<input onclick="addQuestion()">所在的全局范围内不可见。

解决方案1(推荐)

在编写document.getElementById('goption14').addEventListener('click', addQuestion)函数的相同范围内包含jQuery('#goption14').on('click', addQuestion)addQuestion()

解决方案2(不建议)

在HTML中包含以下内容

<script>
    function addQuestion(){
        /*
            your function
        */
    }
</script>


解决方案3(不推荐)

编写如下的onclick事件:

<input ... onclick="function addQuestion(){ ... }; addQuestion();" ... >

07-24 16:44