2014-01-09 61 views
1

我对jQuery和JS非常陌生。我环顾了一下,并没有找到答案,在我的脑海中点击。jquery变量未被发送

我正在做典型的一个下拉内容取决于他人的选择。除了从第一个下拉框中拉出变量的部分之外,我已经完全工作了。

这里就是我有下面的代码:

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工作正常,并在变量通过时返回正确的结果。

回答

4

尝试.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); 
     }); 
    }); 
})); 
+0

杰森,这没有把戏。现在它正在填充。谢谢你的帮助。我有大约8分钟才能接受答案,尽管...... -_- – Mike

+0

对于你的编辑,我完全熟悉PHP并且写这样的JS使它保持在我的头脑中。你的编辑对我来说很有意义,我只是怀疑我可以这样写,而且它确实有效。再次感谢。 – Mike