【发布时间】:2013-03-21 09:35:52
【问题描述】:
我要使用 Javascript,我正在寻找一个表格。我找到了一些我编辑的代码,但它不起作用。我正在尝试制作一个带有 2 个选择下拉列表的表单。当访问者从第一个下拉列表中选择一项服务时,第二个下拉列表将自动更新为每个服务人员的姓名。我已将代码上传到 jsFiddle。网址是 http://jsfiddle.net/mrtxR/ 。我认为这真的很简单,但找不到任何教程和指南。
// The data that the service should return
// JSFiddle will echo it back for us on that URL
var doctors = {
success: true,
doctors: [
{
id: 71,
name: "George"
},
{
id: 72,
name: "James"
}
]
}
// This is what your JSON from PHP should look like
var jsonDoctors = JSON.stringify(doctors);
console.log(jsonDoctors);
// Bind change function to the select
jQuery(document).ready(function() {
jQuery("#services").change(onServiceChange);
});
function onServiceChange()
{
var serviceId = jQuery(this).val();
$.ajax({
url: '/echo/json/',
type: 'post',
data: {
serviceId: serviceId,
json: jsonDoctors // jsFiddle echos this back to us
},
success: onServicesRecieveSuccess,
error: onServicesRecieveError
});
}
function onServicesRecieveSuccess(data)
{
// Target select that we add the states to
var jTargetSelect = jQuery("#doctors");
// Clear old states
jTargetSelect.children().remove();
// Add new states
jQuery(data.doctors).each(function(){
jTargetSelect.append('<option value="'+this.id+'">'+this.name+'</option>');
});
}
function onServicesRecieveError(data)
{
alert("Could not get services. Please try again.");
}
【问题讨论】:
-
我正在使用 firefox,它看起来工作正常。
-
问题是我不知道如何设置例如“George”显示何时选择“Service 2”和“James”何时选择“Service 3”。我看到的是,无论我选择什么服务,它都会显示两个名称。
-
我想我需要做一个比较,将当前选择的服务id与每个医生的服务id(我需要添加到数据中)进行比较。