我创建了一个包含不同按钮选项的表单。我希望只允许用户选择一个按钮。基本上我在表单中有6个这样的按钮,当你点击它时,按钮颜色变为绿色并表示已选中。现在我可以选择所有的按钮选项,我希望它在我点击其中一个按钮的地方,如果我点击另一个,那么我选择的第一个获取"未选中"
<button type="button" class="button-school" value="hidden-springs">
<h2>Hidden Springs</h2>
<span class="select-active">SELECT</span>
</button>
我只发布了一个按钮,但它们都是相同的,具有不同的值和h2值。我试图在网上寻找帮助我的东西,但我真的只看到收音机按钮的东西,这个是我自己制作的。
这是我到目前为止所做的:
<script>
jQuery('.button-school').click(function() {
jQuery(this).toggleClass('active');
if (jQuery(this).hasClass('active')) {
jQuery(this).html(jQuery(this).html().replace('SELECT', 'SELECTED'));
} else {
jQuery(this).html(jQuery(this).html().replace('SELECTED', 'SELECT'));
}
});
</script>
我看到有关&#34;如果点击了#34;我能做些什么我只能有一个活跃的&#34 ;?
答案 0 :(得分:3)
jQuery(function($) {
$('.button-school').click(function() {
$('.button-school').not(this).removeClass('active').html(function() {
return $(this).html().replace('SELECTED', 'SELECT');
});
$(this).addClass('active').html(jQuery(this).html().replace('SELECT', 'SELECTED'));
});
});
JSFiddle: https://jsfiddle.net/TrueBlueAussie/v2ddpuw6/2/
jQuery(function(){})
是DOM就绪处理程序的快捷方式,它也将自身作为第一个参数传递。这样,您就可以避免加载jQuery
并安全使用$
。html()
,则返回值将用于替换现有的html
。not()
的所有匹配项中排除当前选择,以过滤除点击按钮以外的所有内容。答案 1 :(得分:0)
您可以随时使用 按钮 和 单选按钮
HTML:
<input type="radio" hidden name="_groupname" value="what-gets-submitted" />
<button type="button" class="cstm-rad" onclick="this.previousElementSibling.checked=true;">Custom Radio Button</button>
CSS选择,根据按钮的前面是:checked
项来设置按钮的样式:
button.cstm-rad{ /*inactive style*/ }
:checked + button.cstm-rad{ /*active style*/ }
编辑注意:这几乎与我最初提交的解决方案完全相同,只是清除了多余的文本,更多的CSS,并给出了非可怕的命名约定。
答案 2 :(得分:0)
我已经创建了一种非常粗略的方法来实现这一点,但基本上你已经拥有它,所以当点击其中一个提交按钮时,它将隐藏所有提交按钮,这样用户就不能再点击它们了。
jsFiddle:https://jsfiddle.net/v2ddpuw6/
Html
<input type="button" value="Submit1" class="Submit"/>
<input type="button" value="Submit2" class="Submit"/>
<input type="button" value="Submit3" class="Submit"/>
<input type="button" value="Submit4" class="Submit"/>
<input type="button" value="Submit5" class="Submit"/>
的jQuery
$(function()
{
$('.Submit').on('click', function()
{
$('.Submit').hide();
});
});
答案 3 :(得分:0)
我检查了你的代码并得到了问题。以下是您正在寻找的工作示例。
请在这里查看代码。
jQuery('.button-school').click(function() {
if (!jQuery(this).hasClass('active')) {
jQuery('.button-school').removeClass('active');
jQuery('.button-school').html(jQuery('.button-school').html().replace('SELECTED', 'SELECT'));
jQuery(this).toggleClass('active');
jQuery(this).html(jQuery(this).html().replace('SELECT', 'SELECTED'));
} else {
jQuery(this).toggleClass('active');
jQuery(this).html(jQuery(this).html().replace('SELECTED', 'SELECT'));
}
});
&#13;
.active{
background:green;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" class="button-school" value="hidden-springs">
<h2>Hidden Springs</h2>
<span class="select-active">SELECT</span>
</button>
<button type="button" class="button-school" value="hidden-springs">
<h2>Hidden Springs</h2>
<span class="select-active">SELECT</span>
</button>
<button type="button" class="button-school" value="hidden-springs">
<h2>Hidden Springs</h2>
<span class="select-active">SELECT</span>
</button>
&#13;
享受!!!!!!!!!!!