非常新的javascript,但任何有助于我开始的帮助将不胜感激。我有一个简单的表格:
<div><input type="radio" name="o1" id="burger" />Burger</div>
<div id="yesFries"><input type="checkbox" name="e1" id="fries" />Fries with that?</div>
<div><input type="radio" name="o1" id="pizza" />Pizza</div>
<div><input type="radio" name="o1" id="hotdog" />Hot Dog</div>
除非选中“Burger”单选按钮,否则我希望“Fries”复选框显示为灰色。我不确定Javascript或CSS是否是最好的方法。提前谢谢!
答案 0 :(得分:3)
你要做的是设置禁用的元素,直到无线电的状态发生变化,用javascript完成,然后你在单选按钮的onchange中添加/删除被禁用的类。 / p>
您正在考虑使用哪些JavaScript库? jQuery会让这很简单。
$('#burger').change( function () {
if ($('#burger').checked() ) {
$('#fries').removeClass('disabled');
} else {
$('#fries').addClass('disabled');
}
});
答案 1 :(得分:3)
实际上有点CSS3你可以模拟一个非常简单的解决方案。 在这里,我们不会将按钮灰化,但只有选中复选框才能使其可见。 但是,我们也可以在此示例的基础上使用更多的CSS来实现灰色。 您将始终不得不考虑您想要提供什么样的支持。 但是如果你在现代浏览器上工作得很好,就试试吧。
这是HTML
<label>
<input type="checkbox" name="test" />
<span>I accept terms and cons</span><br><br>
<button>Great!</button>
</label>
这是CSS
button { display: none}
:checked ~ button {
font-style: italic;
color: green;
display: inherit;
}
这是DEMO http://jsfiddle.net/DyjmM/
答案 2 :(得分:2)
如果你正在使用jQuery,这是一个非常易于使用的Javascript库(我强烈建议初学者使用),你可以通过向{{1}添加一些代码来分两步完成页面中包含以下标记:
script
这段代码做了三件事:
$(function(){
$("#burger").change(function() {
if ($(this).is(':checked')) $("#fries").removeAttr("disabled");
else $("#fries").attr("disabled", true);
});
});
上收听change
个活动。#burger
。function
的{{1}}属性设置为disabled
的{{1}}属性。答案 3 :(得分:2)
我注意到你没有指定是否可以使用jQuery。如果这是一个选项,请参阅其他帖子,因为我强烈推荐它。
如果您不能使用jquery,请尝试以下方法:
<script>
function setFries(){
var el = document.getElementById("burger");
if(el.checked)
document.getElementById("fries").disabled = false;
else
document.getElementById("fries").disabled = true;
}
</script>
<div><input type="radio" name="o1" id="burger" onchange="setFries();"/>Burger</div>
<div id="yesFries"><input type="checkbox" name="e1" id="fries" disabled="disabled"/>Fries with that?</div>
<div><input type="radio" name="o1" id="pizza" onchange="setFries();"/>Pizza</div>
<div><input type="radio" name="o1" id="hotdog" onchange="setFries();"/>Hot Dog</div>
上的简单示例
答案 4 :(得分:0)
使用JQuery
$().ready(function() {
var toggleAskForFries = function() {
if($('#burger').is(':checked')) {
$('#yesFries').show()
else
$('#yesFries').hide()
}
return false
}
toggleAskForFries()
$('#burger').change(toggleAskForFries)
}
答案 5 :(得分:0)
使用jQuery:http://jsfiddle.net/kboucher/cMcP5/(还为标签添加了标签)
答案 6 :(得分:0)
你可以在没有任何函数库的情况下尝试这个
<input type="checkbox" name="e1" id="fries" disabled />
<强> JS 强>
window.onload=function(){
var radios=document.getElementsByName('o1');
for(i=0;i<radios.length;i++) radios[i].onclick=checkFire;
};
function checkFire(e)
{
var fires=document.getElementById('fries');
var evt=e||window.event;
var target=evt.target||evt.srcElement;
if(target.checked && target.id==='burger') fires.disabled=false;
else
{
fires.checked=false;
fires.disabled=true;
}
}