在 jquery 中使用动态 select 下拉菜单时无法获取选项文本
Cannot get option text when using dynamic select dropdown in jquery
在这里,我使用 jquery
在 select 下拉列表中获取选项文本
tmp_selected = $('#new_autoccType option:selected').text();
但是,我无法使字符串相等,在警报中获取正确的选项文本。
如果字符串相等,则不会进入 if 循环。
这仅在我使用动态选项值时不起作用,如果它是静态的,我可以获得这些值。
有人可以帮忙吗?
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>
尝试删除空格,对于此操作,您可以使用 trim 函数
var tmp_selected = $('#new_autoccType option:selected').text().trim();
也为第二个条件更改文本
从 if (tmp_selected == "New Credit/Debit Card")
到 if (tmp_selected == "New Debit/Credit Card")
您的字符串中有空格使用 $.trim(tmp_selected) 函数删除空格
if(tmp_selected == " New Electronic Check ")
{
alert("inside ec");
//some operations
}
if (tmp_selected == " New Debit/Credit Card ")
{
alert("inside cc");
//some operations
}
使用 trim()
从所选文本中删除空格,如下所示:
var tmp_selected = $('#new_autoccType option:selected').text().trim();
试试这个
$('#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();
Se $.trim(tmp_selected) 进行比较,去掉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();
在这里,我使用 jquery
在 select 下拉列表中获取选项文本tmp_selected = $('#new_autoccType option:selected').text();
但是,我无法使字符串相等,在警报中获取正确的选项文本。 如果字符串相等,则不会进入 if 循环。 这仅在我使用动态选项值时不起作用,如果它是静态的,我可以获得这些值。
有人可以帮忙吗?
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>
尝试删除空格,对于此操作,您可以使用 trim 函数
var tmp_selected = $('#new_autoccType option:selected').text().trim();
也为第二个条件更改文本
从 if (tmp_selected == "New Credit/Debit Card")
到 if (tmp_selected == "New Debit/Credit Card")
您的字符串中有空格使用 $.trim(tmp_selected) 函数删除空格
if(tmp_selected == " New Electronic Check ")
{
alert("inside ec");
//some operations
}
if (tmp_selected == " New Debit/Credit Card ")
{
alert("inside cc");
//some operations
}
使用 trim()
从所选文本中删除空格,如下所示:
var tmp_selected = $('#new_autoccType option:selected').text().trim();
试试这个
$('#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();
Se $.trim(tmp_selected) 进行比较,去掉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();