下拉列表更改的 JQuery 在 codeigniter 中不起作用
Posted
技术标签:
【中文标题】下拉列表更改的 JQuery 在 codeigniter 中不起作用【英文标题】:JQuery on dropdown list change is not working in codeigniter 【发布时间】:2016-12-02 08:50:05 【问题描述】:我是代码点火器的新手,我在 *** 线程的数量中搜索了以下问题,但似乎没有一个能解决我的问题。
我有以下查看代码:
<select name="select1" id="select1">
<option value="0">None</option>
<option value="1">First</option>
</select>
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
// Ajax post
$(document).ready(function()
$("#select1").change(function(event)
event.preventDefault();
var id = $(this).val();
jQuery.ajax(
type: "POST",
url: "<?php echo base_url(); ?>" + "index.php/mycontroller/method",
dataType: 'json',
data: id: id,
success: function(res)
);
);
);
</script>
好的,当我更改下拉列表选择时,什么也没有发生,这实际上应该调用我的控制器方法。你能帮我解决这个问题吗?
谢谢
【问题讨论】:
如果显示任何错误,请查看浏览器控制台 【参考方案1】:您正在使用<select>
id 作为category
但在 jquery 中,您像这样调用 $("#select1").change(function(event)
。
你只需要把$("#select1").change(function(event)
改成
$("#category").change(function(event)
【讨论】:
我的错误实际上是 name 和 id 字段具有相同的 select1 值,但事件仍然不会在更改时触发,谢谢您的回复! echo base_url() 的值是多少; ? 在 index.php "/index.php/mycontroller/method" 之前添加一个/
,
实际上你的检查点帮助我解决了这个问题,这是一个定义不正确的 baseurl 的问题。谢谢!
没问题。很高兴帮助:)【参考方案2】:
如果您的脚本包含任何错误,请在控制台中检查。
如果脚本没有错误,请通过添加警报或控制台语句检查更改后调用的函数。
如果函数被调用,检查 base_url。根据最新评论“/”缺失。
你也可以试试关注sn-p:
//Add J Query Library here
<select name="select1" id="select1" onchange="funName(this);">
<option value="0">None</option>
<option value="1">First</option>
</select>
<script type="text/javascript">
function funName(element)
var id = element.value;
jQuery.ajax(
type: "POST",
url: "<?php echo base_url(); ?>" + "/index.php/mycontroller/method",
dataType: 'json',
data: "id" : id,
success: function(res)
console.log(res);
);
</script>
【讨论】:
实际上这是我之前遇到的另一个问题,它生成了我的控制台浏览器中未定义的 funName,尽管它在 select 标记中定义。什么给了?【参考方案3】:你的 jquery 选择器有错误。
你正在使用$("#select1").change(function());
在您的部分中,此名称中没有引用任何 id。
$("#category").change(function(event)
//ur code here
);
【讨论】:
【参考方案4】:您在 jquery 代码中使用了 id 选择器,但该 id 在 html 下拉标记中作为名称属性被提及。所以试试下面的代码。
更改以下内容:-
<select name="select1" id="category">
<option value="0">None</option>
<option value="1">First</option>
</select>
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
// Ajax post
$(document).ready(function()
$("#category").change(function(event)
event.preventDefault();
var id = $(this).val();
jQuery.ajax(
type: "POST",
url: "<?php echo base_url(); ?>" + "index.php/mycontroller/method",
dataType: 'json',
data: id: id,
success: function(res)
);
);
);
【讨论】:
感谢您的回复,实际上 name 和 id 具有相同的 select1 值,但事件仍然不会在更改时触发。我刚刚编辑了我的问题。以上是关于下拉列表更改的 JQuery 在 codeigniter 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在更改第一个 ddl 时使用 jquery ajax 绑定下拉列表
下拉列表更改的 JQuery 在 codeigniter 中不起作用
每当我更改第一个下拉列表中的选项时,需要 jquery 将第二个下拉列表的默认选项更改为“选择”
在 ASP.NET MVC 中的下拉列表上触发 jQuery 更改事件并将参数传递给 url 操作