选中复选框时显示提交循环

时间:2014-10-03 09:22:34

标签: javascript jquery loops checkbox

我在wordpress中有一个页面显示大约20个民意调查问题(使用WP-polls)。

一旦检查到答案,我正在使用代码段显示每个民意调查的提交按钮。事情是,有了这个片段,我必须复制粘贴它大约20次,因为我是某种循环。

这是我正在使用的当前代码

$(document).ready(function() {

var $submit = $("#btn-7").hide(),
    $cbs = $('input[name="poll_7"]').click(function() {
        $submit.toggle( $cbs.is(":checked") );
    });

});

$(document).ready(function() {

var $submit = $("#btn-6").hide(),
    $cbs = $('input[name="poll_6"]').click(function() {
        $submit.toggle( $cbs.is(":checked") );
    });

});

$(document).ready(function() {

var $submit = $("#btn-5").hide(),
    $cbs = $('input[name="poll_5"]').click(function() {
        $submit.toggle( $cbs.is(":checked") );
    });

});

您可以看到“btn_number”ID和“poll_number”的变化。这还有另外20个片段。我怎样才能让这种动态变化?

4 个答案:

答案 0 :(得分:0)

jQuery允许您使用通配符,例如:

var $submit = $("#btn-*").hide(),
    $cbs = $('input[name="poll_*"]').click(function() {
        $submit.toggle( $cbs.is(":checked") );
    });

编辑:我看到jquery不再支持通配符选择器(如上例所示),您可能需要查看:http://james.padolsey.com/javascript/regex-selector-for-jquery/这使您能够使用正则表达式为所有选择器定义选择器btn&a;及其代码

答案 1 :(得分:0)

您可以在ID和名称属性上使用starts with选择器来动态访问该号码。对于复选框,change事件比click事件更合适。

<强> Demo

$('[id^="btn-"]').hide();

$('input[name^="poll_"]').change(function(){
    var number = this.name.replace('poll_', '');
    $('#btn-' + number).toggle( $(this).is(":checked") );
});

最好使用data-*属性来链接按钮和复选框,或将它们嵌套在具有ID的元素中。从ID属性中解析数字并不是最干净的方法。

答案 2 :(得分:0)

为了获得不同的按钮ID,您不必重复相同的代码20次。你可以让它充满活力。结帐这个简单的例子

&#13;
&#13;
$("#submit").click(

   function()
    {
       
              for(i=1;i<=5;i++)
              {
                msg = $("#btn-"+i).val()
                
                alert(msg)
              }
    
    
    }


)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<input type="button" id="btn-1" value="button1"> 
    <input type="button" id="btn-2" value="button2"> 
        <input type="button" id="btn-3" value="button3"> 
            <input type="button" id="btn-4" value="button4"> 
                <input type="button" id="btn-5" value="button5"> 
  
                    <p>
 <input type="button" value="submit" id="submit">
&#13;
&#13;
&#13;

答案 3 :(得分:-1)

$(document).ready(function(){

    for(var i=1;i<=20;i++){
        var submit = $("#btn-"+i).hide(),
            cbs    = $('input[name="poll_'+i+'"]').click(function(){
                        submit.toggle($this.is(":checked"));
                     });
    }

});