我对 jQuery 和 JS 非常陌生。我环顾四周,没有找到在我脑海中闪过的答案。
我正在做典型的一个下拉内容取决于另一个人的选择。除了从第一个下拉框中提取变量的部分外,我完全可以正常工作。
这是我的代码:
HTML:
<p>Processor Assignment *<br><small>Please Choose the Processor whom you are assigning this Serve. Only Network Member Providers are shown in this list.</small></p>
<select name="assigned_to" id="assigned_to">
<option value="2">test</option>
<option value="3">Test_Processor</option>
</select>
<p>Service Type*</p>
<p id="services_list">Please choose a processor.</p>
JS:
$(document).ready(assigned_to_selectbox_change);
function assigned_to_selectbox_change() {
$('#assigned_to').change(update_services_list);
}
function update_services_list() {
var processor_id = $('#assigned_to').attr('value');
$.get('http://example.com/path/to_ajax/method/' + processor_id, show_services_list);
}
function show_services_list(services) {
$('#services_list').html(services);
}
如果我对其进行硬编码,IE http://example.com/path/to_ajax/method/3
这一切都可以顺利进行。一切都按预期填充。
知道为什么它没有获取 assigned_to 值吗?我已确认 PHP/MySQL/etc 工作正常并在传递变量时返回正确的结果。
最佳答案
尝试使用 .val()
而不是 .attr('value')
:
var processor_id = $('#assigned_to').val();
此外,如果没有特定原因将您的代码拆分为这么多函数,我觉得这样更简洁:
$(document).ready(function() {
$('#assigned_to').change(function() {
$.get('http://example.com/path/to_ajax/method/' + this.value, function(services) {
$('#services_list').html(services);
});
});
}));
关于javascript - jquery变量没有被发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032795/