为非常基本问题道歉 - javascript中的速成课程即将发布!但在此之前,我有一个javascript函数:
function toggle(request)
该功能只是将div切换为可见/不可见。我可以使用 onclick 事件从此函数触发我想要的行为,如下所示:
<input type="radio" name="complete" value="true" id="complete_yes"
onclick="toggle('true');"/>
这很好用,但在发布表单后,在某些情况下,我希望自动选择单选按钮,并将javascript函数自动设置为:
toggle('true')
......从而揭示了div的内容。我已经将“已检查”部分工作了,但是如何将javascript函数有条件地设置为true以及?
<input type="radio" name="complete" value="true" {if $data.complete == true}checked{/if} id="complete_yes"
onclick="toggle('true');"/>
答案 0 :(得分:2)
决定学习jQuery!下面的语法实现了预期的结果,并且非常易于维护!
$(document).ready(function () {
$('#complete_yes').toggle(function () {
$('#repair_complete').removeClass('hidden');
}, function() {
$('#repair_complete').addClass('hidden');
});
});
答案 1 :(得分:1)
在JS toggle
函数中,如果必须根据输入的“已检查”状态显示div,那么测试是什么?
有点像这样,我想:
function toggle()
{
if (document.getElementById('YOUR_INPUT_ID').checked) {
document.getElementById('YOUR_DIV_ID').style.display = 'block';
} else {
document.getElementById('YOUR_DIV_ID').style.display = 'none';
}
}
绝对没有经过测试,但我认为你会得到这个想法:-)
(我从来不知道在onclick上JS函数之前或之后被认为是“已检查”的输入...所以你可能实际上必须反转'block
'和' none
'设置)</ em>
并且,如果你有几个输入/ div,你可以将它们的id作为参数传递给toggle
函数......
这样,您就不必担心该功能的任何“初始化”。
请注意,您还可以测试div是否可见,如下所示:
function toggle()
{
if (document.getElementById('YOUR_DIV_ID').style.display == 'none') {
document.getElementById('YOUR_DIV_ID').style.display = 'block';
} else {
document.getElementById('YOUR_DIV_ID').style.display = 'none';
}
}
(未经过测试)
这样,每次调用div时,你的函数都会切换 div的显示。
答案 2 :(得分:0)
为什么不这样做:
{if $data.complete == true}
<script type="text/javascript">toggle('true');</script>
{/if}