Firefox中的php jquery错误

时间:2010-01-06 14:29:17

标签: php javascript jquery

我遇到了一些Javascript问题,希望有人可以提供帮助! 首先,这是代码:

function Client_Selected() {
    var temp = $("input:radio[name='selected_client']:checked").val();
    var f_input_name = "fname_" + temp;
    var l_input_name = "lname_" + temp;    
    var first = $("input[name='"+f_input_name+"']").val();
    var last = $("input[name='"+l_input_name+"']").val();
    var content = first + " " + last;
    var thispage = $("input[name='current_page']").val();

    // Now Load the Notes!!!
    dataString = 'web_id='+temp+'&Section='+thispage;
    $.ajax({
        type: "POST",
        url: "<?=URL_SSL_WEBSITE_ROOT?>/notes/loadClientNotesAJAX",
        data: dataString,
        success: function(msg) {
            $("#notes_body").html(msg);
            $("#note_client_name").html(content);
        }
    });        

    $("#button_client_name").html(content);
    $("#note_client_name").html(content);    
    $("input:radio[name=selected_client]:checked").attr(checked, true);
};

我的问题在于最后一行。 发生了什么,是我有一个与单选按钮关联的客户列表,当单击一个按钮时,我进行AJAX调用以获取/显示有关客户端的信息。如果最后一行不存在,那么当我选择第二个客户端时,它会加载信息,但新客户端的单选按钮不会保持选中状态,而是先前(或第一个)所选客户端单选按钮保持选中状态。

对于最后一行,我收到错误:“checked is undefined”

尽管错误一切正常,但仍然检查了相应的复选框。但是,随着昨天firefox的新更新......相应的复选框仍然被选中,虽然我的成功函数永远不会在ajax调用上运行,而javascript只是停在最后一行。它仍然适用于IE,但我需要在Firefox中再次使用它。 任何想法?

我尝试将其更改为: $(“input:radio [name = selected_client]:checked”)。attr('checked',true); 然后运行成功函数,并在我的网页上填充信息,然后我得到新选中的复选框的问题,不进行检查,前一个仍然被检查。

非常感谢任何帮助。

由于

4 个答案:

答案 0 :(得分:1)

尝试ajax调用的成功函数中的最后一行。

并使用attr('checked',true)

答案 1 :(得分:1)

.attr('checked','checked');会检查您的复选框/电台框和.removeAttr('checked'); 取消选中它。

答案 2 :(得分:1)

看起来缺少一些报价

$("input:radio[name=selected_client]:checked").attr('checked', 'checked');

答案 3 :(得分:1)

  

已检查未定义

当然是。您使用了checked; JavaScript正在寻找一个名为checked的变量,该变量不存在。你的意思是用引号说'checked'作为字符串。

然而,

$("input:radio[name=selected_client]:checked").attr('checked', true);

什么都没有,因为您正在检查已经检查过您的选择器的无线电。你想做什么,这里?

请注意,如果您在单选按钮onclick处理程序中执行此操作,则在执行该函数期间:checked无线电将不会是新单击的无线电,它将是那个以前检查过。直到onclick事件处理完成后,点击更改检查才真正通过。如果您想在onclick期间找到新的广播,则必须查看thisevent对象,具体取决于您调用该功能的方式。


其他答案:

  

ATTR( '检查', '检查')

我们能不能停止这样做吗?它有效,但不是因为你的想法。 jQuery attr()执行设置HTML属性(除了在尝试解决浏览器错误的几个案例中)。它设置JavaScript属性,但尝试修复名称以匹配HTML属性。所以:

attr('checked', true);

false用于取消设置,是正确的方法。值'checked'仅起作用,因为在评估布尔属性时它是真实的。任何非空字符串都会完全相同。

如果jQuery 设置了HTML属性,则attr('checked')将无效,因为HTML checked属性对应于复选框的初始设置(又名defaultChecked),当前的检查状态。