开发者

jquery checkbox help getting checkbox name and value

The Problem

I am trying to run some ajax on one my pages for my website, basically I have three checkboxes all of which on pageload are unselected, when a checkbox is clicked I need to be able load in via ajax the relevant HTML. This system is currently a PHP script that depending on what the POST is set returns a different view, so I think all I need to is send the POST via AJAX, but I need to do everytime a new checkbox is checked.

My HTML looks like this, 开发者_运维百科

    div class="segment">
               <div class="label">
                <label>Choose region: </label>
               </div>


<div class="column w190">
                    <div class="segment">
                        <div class="input">
                            <input type="checkbox" checked="checked" class="radio checked" value="Y" name="area[Nationwide]" id="inp_Nationwide">
                        </div>
                        <div class="label ">
                            <label for="inp_Nationwide">Nationwide</label>
                         </div>
                        <div class="s">&nbsp;</div>
                    </div>

</div>

<div class="column w190">
                    <div class="segment">
                        <div class="input">
                            <input type="checkbox" checked="checked" class="radio checked" value="Y" name="area[Lancashire]" id="inp_Lancashire">
                        </div>
                        <div class="label ">
                            <label for="inp_Lancashire">Lancashire</label>
                         </div>
                        <div class="s">&nbsp;</div>
                    </div>

</div>

<div class="column w190">
                    <div class="segment">
                        <div class="input">
                            <input type="checkbox" checked="checked" class="radio" value="Y" name="area[West_Yorkshire]" id="inp_West_Yorkshire">
                        </div>
                        <div class="label ">
                            <label for="inp_West_Yorkshire">West Yorkshire</label>
                         </div>
                        <div class="s">&nbsp;</div>
                    </div>
               <div class="s">&nbsp;</div>
       </div>
</div>

My current attempt was to ascertain whether the input has been clicked so I have done this with my javascript, though this is probably wrong,

$('input.radio').click(function(){
        if($(this).hasClass('clicked')) {
            $(this).removeClass('clicked');
        } else {
            $(this).addClass('clicked');
        }
    });


You can do

    $('input.radio').change(function(){ // will trigger when the checked status changes
            var checked = $(this).attr("checked"); // will return "checked" or false I think.
            // Do whatever request you like with the checked status
    });

Also, if you say

three checkboxes all of which on pageload are unselected

They should have checked=""


$("input:checkbox:checked")

will return all checkboxes that are currently checked.

The event handler .change() will bind to whenever the input changes, so for radios/checkboxes, it binds to whenever they're toggled, so no need to use click().

$(".radio:checkbox").change(function() {
     var boxChecked = $(this).is(":checked");
     if(boxChecked) {
         ...do ajax...
      }
 });

But this is kind of sloppy too, considering you could use the toggle() method instead. Plus, are you wanting to destroy the html when they uncheck? Or is this a one time deal?


$('input:checkbox').bind('click', function(e){
       switch(e.target.id){
           case 'someid':{
                 if($(this).is(':checked')){
                    //ajax call here
                 }
                 break;
           }
           case 'anotherid':{
                 // something
                 break;
           }
       }
    });

Actually, you could change the arragment in checking first if the element is checked or unchecked and then switch through the id's.. hmm

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜