我正在使用以下代码:
<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();" ... >