Reputation: 3417
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>
Dynamic JS FIDDLE - PROBLEM HERE
Upvotes: 1
Views: 792
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
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
Reputation: 2200
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
Reputation: 11859
use trim()
to remove spaces from the selected text like this:
var tmp_selected = $('#new_autoccType option:selected').text().trim();
Upvotes: 1
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
}
Upvotes: 1