【问题标题】:jquery 1.9.1 event handler not firingjquery 1.9.1 事件处理程序未触发
【发布时间】:2013-02-03 02:28:05
【问题描述】:

把我的头撞到墙上.. 谷歌搜索并检查了以前的 q 在这里.. 找不到答案.. 使用 jquery 1.9.1

非常简单的问题...选择下拉列表,希望我的功能在用户更改下拉列表时触发..问题是。没有任何反应.. 没有错误.. func 不会触发

$("select.radStatus").change(function() {
    // alert('Value change to ' + $(this).attr('value'));
    $.ajax({
       type: "GET",
       url: "ajax_me.php",
       data: "officeLocName=" + $(this).val(),
       success: function(msg){
           $('#signInResult').html('<img src="img/checkmark.png" />');
        }
    });
});

HTML 是:

<select id="radStatus" name="officeLocName">
<option value="1">choice 1</option>
<option value="2">choice 2</option>
<option value="3">choice 3</option>
</select>

我尝试缝制一个新选项...事件没有触发...没有任何反应..萤火虫中没有错误

谢谢

更新: 谢谢它有效!

【问题讨论】:

  • 应该是$("select#radStatus")
  • @ROYFinley 请将其添加为答案,以便正确投票。

标签: php jquery ajax


【解决方案1】:

应该是 $("select#radStatus") 。这是为了身份证。 . 用于上课

【讨论】:

  • 我不知道我做错了什么..改变它..仍然无法正常工作。我尝试将代码放在 jsfiddle 上,但我找不到让永久链接在此处发布 jsfiddle 链接的方法.. 令人沮丧
  • @bobafart 您是否也更改了 this,如 charierfl 的回答中所述。
【解决方案2】:

this 不是select,当你在$.ajax 中并且需要在选择器中使用ID 前缀

正如其他答案所暗示的那样,进行另一个 DOM 搜索是没有意义的,只需在 $.ajax 之前将 select val 声明为变量

$("select#radStatus").change(function() {
    var value=$(this).val();
    $.ajax({
       type: "GET",
       url: "ajax_me.php",
       data: "officeLocName=" + value,
       success: function(msg){
           $('#signInResult').html('<img src="img/checkmark.png" />');
        }
    });
});

【讨论】:

  • 将您的代码包装在$(function(){ }) 中。它在它寻找的 html 存在之前触发
【解决方案3】:

改变 $("select.radStatus")$("select#radStatus")

您在 jQuery 中将它作为一个类,但在 html 中作为一个 ID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-15
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多