我有以下jquery代码:
$("#ruletypes").change(function() {
var selectedtype = this.value;
var url;
if (selectedtype == 1) {
url = url1;
} else {
url = url2;
}
$.getJSON(
url,
function(data) {
data = $.parseJSON(data); //converting to a javascript object vs. just string....
if (data !=null){
//remove everything in current list.
$('#contact_types')
.find('option')
.remove()
.end()
//loop through results and add each one
$.each(data, function(i) {
$('#contact_types')
.append($("<option></option>")
.attr("value",this.id)
.text(this.description));
}); //end .each
}//end if
}//end function(data)
);//end getJSON.
//set default values for contact type
if (selectedtype == 1) {
$('#contact_types').val(2).change();
} else {
$('#contact_types').val(1).change();
}
});//end ruletypes.change
$("#contact_types").change(function () {
var selectedtext = $("#contact_types option:selected").html();
alert("select value of contact type is" + selectedtext);
alert(this.value);
});
我的问题/问题是,一旦我以编程方式触发contact_types选择框的更改事件,我似乎无法确定该值是什么。 我已经分别返回undefined和null的两个警告语句。
我也试过.text()。
你能告诉我我的错误在哪里吗?我需要能够在contact_types中确定当前所选项目的值。
感谢。
答案 0 :(得分:1)
好吧,您应该使用this.value
通过onchange
事件获取当前选定的值。修复了明显的语法错误(未声明的变量,缺少)}
等):
$("#ruletypes").change(function () {
var selectedtype = this.value;
if (selectedtype == 1) {
$('#contact_types').val(2).change();
} else {
$('#contact_types').val(1).change();
}
});
$("#contact_types").change(function () {
var selectedtext = $("#contact_types option:selected").html();
alert("select value of contact type is" + selectedtext);
alert(this.value);
});
答案 1 :(得分:0)
您可以使用以下内容:
$("#contact_types").bind('change', function(e) {
alert(e.target.options[e.target.selectedIndex].text);
});
或仅在更改事件中使用:alert($(this).val());
。