我有一个包含多个下拉菜单的表单,需要进行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(数据)时,它不会返回任何内容。
答案 0 :(得分:0)
您的##
选择器不正确。应该只有一个#
来表示ID选择器
像:
$("#CompanySelect")
也可以使用this
作为更改事件处理程序中的<select>
元素
var ProgramValue = $("#Program").val();
var sCompany = $(this).val();
之后remote:{...}
语法无效,你似乎遗漏了ajax代码
答案 1 :(得分:0)
没有&#34;惊人的帮助&#34;我建议你给我。但是,两个想法。
当ajax没有返回任何内容时,通常调用脚本不会返回任何内容。所以,你也可以在你的ajax调用上添加一个.error返回处理程序(总是应该总是有一个)。
&#34; ##&#34;选择器对我来说有点奇怪。 :)我之前看到过这样做的代码,但它非常罕见。那是你真正的意思吗?