如何仅选择所选的复选框值

时间:2013-03-01 06:08:56

标签: php javascript jquery ajax codeigniter

这是我在codeigniter中的视图,其中我使用ajax将数据发布到我的控制器

<script type="text/javascript">
        $(document).ready(function(){
            // find the input fields and apply the time select to them.
            $('#sample1 input').ptTimeSelect();
        });
    </script>
    <script type="text/javascript">

function add_chamber() {
    $.ajax({
        url: '<? echo base_url("index.php/doctormain/add_chamber"); ?>',
        type: "POST",
        data: {
            name :  $("input#name").val(),
            address :  $("input#address").val(),
            city :  $("input#city").val(),
            locality :  $("input#locality").val(),
            state:$("input#state").val(),
            landline :  $("input#landline").val(),
            mobile :  $("input#mobile").val(),
             fees :  $("input#fees").val(),
            email :  $("input#email").val(),
            days :  $("input#mon:checked").val() +$("input#tue:checked").val()+$("input#wed:checked").val()+$("input#thur:checked").val()+$("input#fri:checked").val()+$("input#sat:checked").val()+$("input#sun:checked").val(),
            start :  $("input#start").val(),
            end :  $("input#end").val(),
            comments :  $("input#comments").val()
        },
        success :function(response) {

            $('#sucess').html(response);
            $( "#sucess" ).dialog({
      height: 140,
      modal: true
    });
        },
        error: function(){
            alert("Error");
        }
    });
}
</script>


<div class="content">
<div class="content-left">
<div  class="row1">
<h2>Welcome <? echo $username ?></h2>
<h1> Add Chamber </h1>
<h2><div id="sucess"></div></h2>



   <?php echo form_open_multipart('doctormain/add_chamber');?>

      <table width="100%">

<tr><td> Name:</td><td> <input name="name" type="text" id="name"></td></tr>
<tr><td> Address:</td><td>  <input name="address" type="text" id="address"></td></tr>
<tr><td> City:</td><td>  <input name="city" type="text" id="city"></td></tr>
<tr><td> Locality:</td><td> <input name="locality" type="text" id="locality"></td></tr>
<tr><td> State:</td><td>  <input name="state" type="text" id="state"></td></tr>
<tr><td> Landline:</td><td>  <input name="landline" type="text" id="landline"></td></tr>
<tr><td> Mobile:</td><td>  <input name="mobile" type="text" id="mobile"></td></tr>
<tr><td> Email:</td><td>  <input name="email" type="text" id="email"></td></tr>
<tr><td> Consultation Fees:</td><td>  <input name="fees" type="text" id="fees"></td></tr>
<tr>
  <td> Days Of Availability:</td><td>
  Mon:<input name="mon" type="checkbox" id="mon" value="1" checked>
  Tue:<input name="tue" type="checkbox" id="tue" value="2"  checked>
  Wed:<input name="wed" type="checkbox" id="wed" value="3" checked>
  Thur:<input name="thur" type="checkbox" id="thur" value="4" checked>
  Fri:<input name="fri" type="checkbox" id="fri" value="5" checked>
  Sat:<input name="sat" type="checkbox"  id="sat" value="6" checked>
  Sun:<input name="sun" type="checkbox" id="sun" value="7" checked>
  </td></tr>
  <tr><td> Time Of Availability</td><td>

  <div id="sample1" class="ui-widget-content" style="padding: .5em;">
        <p>
            <label>Start</label>
            <input name="s1Time2" id="start" value="" /> 
            <label>End</label>
            <input name="s1Time2" id="end" value="" />
        </p>
        </div>



  </td></tr>
<tr><td> Comments:</td><td> <input name="comments" type="testbox" id="comments" ></td></tr>

<tr><td> </td><td> <input name="submit" id="submit" class="button" type="button" value="Save" onclick="add_chamber()">
</td></tr>
<? echo form_close();?>
      </table>

   <div id="results">
   </div>
   </div>


</div>

<div class="content-right">
<div class="mainmenu">
<h2 class="sidebar1">My Menu</h2>
<p><ul>
  <li><a href="#">this is a dummy link 1</a></li>
  <li><a href="#">this is a dummy link 2</a></li>
  <li><a href="#">this is a dummy link 3</a></li>
  <li><a href="#">this is a dummy link 4</a></li>
  <li><a href="#">this is a dummy link 5</a></li>
  <li><a href="#">this is a dummy link 6</a></li>
  <li><a href="#">this is a dummy link 7</a></li>
  <li><a href="#">this is a dummy link 8</a></li>
  <li><a href="#">this is a dummy link 9</a></li>
  <li><a href="#">this is a dummy link 10</a></li>
</ul></p>
</div>



</div>
</div>

但是在我的jquery中

 days :  $("input#mon:checked").val() +$("input#tue:checked").val()+$("input#wed:checked").val()+$("input#thur:checked").val()+$("input#fri:checked").val()+$("input#sat:checked").val()+$("input#sun:checked").val(),

我只想传递所选复选框的值。

例如,如果选中了复选框id sun,它将仅传递7。

但我遇到的问题是,当我选择它时,例如mon,tue,sun,它正在通过12undefined。

任何人都可以帮我解决这个问题 谢谢 Somdeb

7 个答案:

答案 0 :(得分:2)

尝试使用this方法:

days =  $('input[type=checkbox]:checked').map(function() {
                 return this.value ;
              }).get().join(',');

参见 Sample

答案 1 :(得分:1)

你可以通过each();

来做到这一点
$("input:checkbox:checked").each()

$("input:checkbox[name=numbers]:checked") 

将返回所有已选中复选框的数组,然后我们可以遍历该数组

以下是Example

答案 2 :(得分:1)

而不是这样做,你可以遍历所有选中的复选框

$("input:checkbox:checked").each(function(){

 days+=$(this).val();
}

答案 3 :(得分:1)

如果无效,请尝试使用.is()进行检查。

示例

var passDays;

if($("#mon").is(':checked'))
{
    passDays += $(this).val();
}

if($("#tue").is(':checked'))
{
    passDays += $(this).val();
}

days : passDays,

您也可以将passDays用作arraypush值。

此外,您可以使用.each()优化此代码,并使用.is(':checked')然后push将其与数组核对。

答案 4 :(得分:0)

试试这个: -

days :  $("#mon:checked").val() +$("#tue:checked").val()+$("#wed:checked").val()+$("#thur:checked").val()+$("#fri:checked").val()+$("i#sat:checked").val()+$("#sun:checked").val()

答案 5 :(得分:0)

这就是为jQuery serializefind制作的。

function add_chamber() {
    $.ajax({
        url: '<? echo base_url("index.php/doctormain/add_chamber"); ?>',
        type: "POST",
        data: { $(table).find(input, checkbox, textbox).serialize();
        }
},

点击此处:http://api.jquery.com/serialize/

答案 6 :(得分:0)

你可以试试这个:

var days = {};
$('form input[type=checkbox]').each(function() {
    days[$(this).attr('value')] = $(this).attr('checked');
});