UI_Dev
UI_Dev

Reputation: 3417

Cannot get option text when using dynamic select dropdown in jquery

Here, I am getting options text in select dropdown using jquery

tmp_selected  = $('#new_autoccType option:selected').text();

But, I can't able to equal the strings, getting correct options text in alert. It doesn't goes to if loop if the strings are equal. This is not working only if I use dynamic options value, if it is static, I can get the values.

Could somebody help?

var def_expval="";
var newEC = 1;
var strNewCC = 1;


data = '<select class="tablefont" name="new_autoccType" id="new_autoccType">';	
 data+='<option value= '+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+newEC+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+' > '+"New Electronic Check"+' </option>';
		  data+='<option value= '+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+strNewCC+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+','+def_expval+' > '+"New Debit/Credit Card"+' </option>';
data +='</select>';

$("#somedivs").html(data);


$('#new_autoccType').change(function() {  
	           selOption =  $(this).val();
	            tmp_selected  = $('#new_autoccType option:selected').text();
			   alert(tmp_selected);	
			   if(tmp_selected == "New Electronic Check")
	           {
	           		alert("inside ec");
					//some operations	
	           }
          if (tmp_selected == "New Credit/Debit Card")
	           {
       			 alert("inside cc");
       	 		//some operations
	           } 
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="somedivs"></div> 

Static JS FIDDLE

Dynamic JS FIDDLE - PROBLEM HERE

Upvotes: 1

Views: 792

Answers (5)

Sujit Patil
Sujit Patil

Reputation: 183

Use $.trim(tmp_selected) for comapring, remove space

$('#new_autoccType').change(function() {  
           selOption =  $(this).val();
            tmp_selected  = $('#new_autoccType option:selected').text();
           alert(tmp_selected); 
           if($.trim(tmp_selected) == "New Electronic Check")
           {
                alert("inside ec");
                //some operations   
           }
      if ($.trim(tmp_selected) == "New Credit/Debit Card")
           {
             alert("inside cc");
            //some operations
           } 
    }).change();

Upvotes: 1

Oleksandr T.
Oleksandr T.

Reputation: 77482

Try remove spaces, for this operation you can use trim function

var tmp_selected = $('#new_autoccType option:selected').text().trim();

Also for the second condition change text

from if (tmp_selected == "New Credit/Debit Card") to if (tmp_selected == "New Debit/Credit Card")

Demo: http://jsfiddle.net/hs74sby1/13/

Upvotes: 1

SimarjeetSingh Panghlia
SimarjeetSingh Panghlia

Reputation: 2200

js fiddle

try this

$('#new_autoccType').change(function() {  
               selOption =  $(this).val();
               tmp_selected  = $('#new_autoccType option:selected').text();
               alert(tmp_selected); 
               if(tmp_selected.trim() == "New Electronic Check")
               {
                    alert("inside ec");
                    //some operations   
               }
               if (tmp_selected.trim() == "New Debit/Credit Card")
               {
                 alert("inside cc");
                //some operations
               } 
}).change();

Upvotes: 1

Suchit kumar
Suchit kumar

Reputation: 11859

use trim() to remove spaces from the selected text like this:

 var tmp_selected = $('#new_autoccType option:selected').text().trim();

Upvotes: 1

Suraj Rawat
Suraj Rawat

Reputation: 3763

You have spaces in your strings use $.trim(tmp_selected) function to remove spaces

if(tmp_selected == " New Electronic Check ")
           {
                alert("inside ec");
                //some operations   
           }
     if (tmp_selected == " New Debit/Credit Card ")
           {
             alert("inside cc");
            //some operations
           } 

Working Link

Upvotes: 1

Related Questions