2011-06-18 46 views
0

好的感谢这里的人们,我们已经对复选框点击功能进行了排序,现在使用不显眼的js。赋值给复选框?

我想实现的是..

我们有一个表格,并与复选框未点击提交,表单提交,因为它通常会...

但是..我增加了一个选项点击复选框,显示隐藏的内容..我想同样的形式的一部分,但有附加价值等。

本质...

如果复选框没有被选中,显示标准的提交按钮。

如果复选框被点击,隐藏标准按钮并切换附加的表单元素和新的提交按钮。

我现在面临的问题是:

  1. 传递一个数值的onclick从复选框,因此需要设置为1或0 0是标准无能为力 1隐藏提交按钮,切换隐藏的另一种形式领域。

我可以得到切换工作,但onclick的复选框,它什么都不做。

如果单击复选框,我也很难掩饰提交按钮(通常显示)。

脚本隐藏的元素:

$('.styledCheckbox').change(function() { 
    if ($(this).val() != "0") { 
    $('.extraForm').show('fast'); 
    }else if ($(this).val() == "0") { 
    $('.extraForm').hide('fast'); 
} 

});对于复选框

脚本:

$(function(){ 
    $('.styledCheckbox').click(function(){ 
    setCheckboxDisplay(this); 
    }); 
}); 

HTML的复选框:

<input name="include" type="checkbox" id="checkbox" class="styledCheckbox" /> 

隐藏的div

<div class="extraForm" style="display:none;"> 
             <!--extra form elements and submit button here--> 
            </div> 

哦,会idealy状的形式已经基于事件的动态动作处理程序,所以如果标准表单提交..做些事情,如果复选框选择,表单提交...做somethi ng else

还希望基于CHECKBOX选择更改表单操作?

所以像...

changeAction(URL){ document.this_form.action = “clicked.php”; }

<形式方法= “POST” NAME = “this_form” 行动= “unclicked.php”>

回答

1

我认为这是不工作,因为你没有为你的复选框设置的值。此外,最好是jQuery的is(":checked")功能检查,如果复选框被选中:

JS:

$('.styledCheckbox').change(function() { 
    if ($(this).is(":checked")) { 
        $('.extraForm').show('fast'); 
    } else { 
     $('.extraForm').hide('fast'); 
    } 
}); 

HTML:

<input name="include" type="checkbox" id="checkbox" value="yes" class="styledCheckbox" /> 

广告@米

+0

好吧,伟大的工程。是否有可能改变表单动作?任何建议..谢谢 – 422

+0

你也可以简单地检查'if(this.checked){'...表现会更好。不需要在对象周围包装jQuery以查明它是否被选中。 –

+0

会是这样吗:请参阅修改后的问题 – 422

1

我假设你正在试图切换基础上,如果该复选框选中状态的形式。 如果是这样的情况下可以尝试:

$('.styledCheckbox').change(function() { 
    if ($(this).is(':checked')) { 
     $('.extraForm').show('fast'); 
    } else { 
     $('.extraForm').hide('fast'); 
    } 
}); 
+0

谢谢你看起来像伟大的头脑认为相似 – 422