基于下拉列表的jQuery AJAX调用不会返回任何响应

时间:2017-11-04 18:36:09

标签: jquery ajax

我有一个包含多个下拉菜单的表单,需要进行ajax调用以根据2个不同下拉菜单的选择来检查是否存在匹配。

首先是程序下拉菜单,然后是公司下拉列表。每个程序/公司都有一个匹配项,所以当选择programValue时,如果用户选择了一个与该程序无关的公司,我只需要显示一条不匹配的警告信息,但它们仍然可以去提前并提交。

    $('#CompanySelect').change(function() {
    var ProgramValue = $("#Program").val();
    var sCompany = $("##CompanySelect").val();
    $.ajax({
             url: 'checkProgram.cfm',
             type: 'post',
             data: {Program:ProgramValue, Company:sCompany},
             dataType: 'json',
             success: function(data) {
            console.log(data);  
        }
     });

所以checkProgram.cfm运行几个查询以匹配公司与程序,并传递true / false作为响应。

<cfif bMatch>
    <cfset ajaxResponse = true>
<cfelse>
    <cfset ajaxResponse = false>
</cfif>

<cfoutput>#SerializeJson(ajaxResponse)#</cfoutput>

但是,当我执行console.log(数据)时,它不会返回任何内容。

2 个答案:

答案 0 :(得分:0)

您的##选择器不正确。应该只有一个#来表示ID选择器

像:

$("#CompanySelect")

也可以使用this作为更改事件处理程序中的<select>元素

var ProgramValue = $("#Program").val();
var sCompany = $(this).val();

之后remote:{...}语法无效,你似乎遗漏了ajax代码

答案 1 :(得分:0)

没有&#34;惊人的帮助&#34;我建议你给我。但是,两个想法。

  1. 当ajax没有返回任何内容时,通常调用脚本不会返回任何内容。所以,你也可以在你的ajax调用上添加一个.error返回处理程序(总是应该总是有一个)。

  2. &#34; ##&#34;选择器对我来说有点奇怪。 :)我之前看到过这样做的代码,但它非常罕见。那是你真正的意思吗?