Shawn Mclean
Shawn Mclean

Reputation: 57469

Jquery.change firing on page load

<label for="AddList" class="locType">Select a location</label>
<select id="AddList">
     <option value="New">New Address...</option>
</select>

The Js.

$(document).ready(function() {
    //Location Code
    $("#AddList").change(function() {
        var str = "";
        $("#AddList option:selected").each(function() {
            str += $(this).text() + " ";
        });
        alert(str);            
    })
    .change();
});

I'm trying to alert the contents whenever the user selects an option in the combobox. Also, could the code be provided to get the value of the selected option also.

Thank you

Upvotes: 2

Views: 2360

Answers (2)

SLaks
SLaks

Reputation: 887225

By writing .change(); at the end of your code, you are manually firing the change event.

What were you trying to do?


To get the value of the option element, call the val method.

Upvotes: 1

Sampson
Sampson

Reputation: 268324

You're calling .change(); yourself right after you bind it:

//Location Code
$("#AddList").change(function() {
    /* your logic */           
})
.change(); // right here you're calling it

Getting the value of the option:

$("#AddList option:selected").each(function(){
  var val = $(this).val();
});

Upvotes: 6

Related Questions