Javascript onclick表单提交不使用prettycheckable样式的复选框/收音机
我有一些表单,它们有定制样式的复选框和单选按钮,并带有prettycheckable(来自) 我正试图让它像这样工作,以便它在选中复选框或收音机时自动提交表单Javascript onclick表单提交不使用prettycheckable样式的复选框/收音机,javascript,jquery,Javascript,Jquery,我有一些表单,它们有定制样式的复选框和单选按钮,并带有prettycheckable(来自) 我正试图让它像这样工作,以便它在选中复选框或收音机时自动提交表单 <script type"text/javascript"> $(":checkbox").click(function() { $(this).closest("form").submit(); }); </script> $(“:复选框”)。单击(函数(){ $(this).最近的(“表单”).subm
<script type"text/javascript">
$(":checkbox").click(function() {
$(this).closest("form").submit();
});
</script>
$(“:复选框”)。单击(函数(){
$(this).最近的(“表单”).submit();
});
及
$(“:radio”)。单击(函数(){
$(this).最近的(“表单”).submit();
});
但当它被点击时,绝对不会发生任何事情。我想这可能是因为实际的复选框被样式化的span替换为prettycheckable。我怎么才能捕捉到“咔嗒”声呢
更新:
我试过这个:
<script type"text/javascript">
$(":checkbox").on('change', function() {
$(this).closest("form").submit();
});
</script>
$(“:复选框”)。在('change',function()上{
$(this).最近的(“表单”).submit();
});
但它也不起作用。我有一种感觉,我很接近,但我不太擅长jQuery
这里似乎有人也有同样的问题:
以上这些对他们有效…也许我在某个地方有个小错误
还有一个更新:
下面是我正在使用的相同标记的JSFIDLE:)
我刚刚检查了prettycheckable源代码-如果您使用它就像他们在主页上提供的一样,那么输入(无论是radiobox还是checkbox)都是样式化的
只要检查控制台,上面的答案对我有用。我刚刚为包含表单的div添加了class=“test”,并添加了
$j(".test a").click(function() {
console.log("click");
});
当您使用例如Firebug进行检查时,您会注意到已设置样式的复选框已设置样式应用prettyCheckable()
更改html,包括隐藏复选框并将其包含在一个div中。html类似于
<div class="clearfix prettycheckbox labelleft blue">
<input type="checkbox" id="use_4" name="4" data-label="Hasbeens" value="1" checked="checked" style="display: none;">
<label for="use_4">Hasbeens</label>
<a href="#" class="checked "></a>
</div>
不幸的是,我的表单不是那样的……它们是标准表单HTML,不带“a href”。不知道标记不容易猜到。。你能用表单元素的标记更新你的问题吗?或者添加一个链接,链接上有一个漂亮的可检查表单的例子,这就是你使用它的方式吗?没有你的HTML,你到底希望我们如何帮助你?
$j(".test a").click(function() {
console.log("click");
});
<div class="clearfix prettycheckbox labelleft blue">
<input type="checkbox" id="use_4" name="4" data-label="Hasbeens" value="1" checked="checked" style="display: none;">
<label for="use_4">Hasbeens</label>
<a href="#" class="checked "></a>
</div>
$('.prettycheckbox').click(function() {
var cb = $(this).find('input[type="checkbox"]');
if (cb.is(':checked')) {
$(this).closest("form").submit();
}
});