我遇到了一些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); 然后运行成功函数,并在我的网页上填充信息,然后我得到新选中的复选框的问题,不进行检查,前一个仍然被检查。
非常感谢任何帮助。
由于
答案 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
期间找到新的广播,则必须查看this
或event
对象,具体取决于您调用该功能的方式。
其他答案:
ATTR( '检查', '检查')
我们能不能停止这样做吗?它有效,但不是因为你的想法。 jQuery attr()
执行不设置HTML属性(除了在尝试解决浏览器错误的几个案例中)。它设置JavaScript属性,但尝试修复名称以匹配HTML属性。所以:
attr('checked', true);
或false
用于取消设置,是正确的方法。值'checked'
仅起作用,因为在评估布尔属性时它是真实的。任何非空字符串都会完全相同。
如果jQuery 设置了HTML属性,则attr('checked')
将无效,因为HTML checked
属性对应于复选框的初始设置(又名defaultChecked
),不当前的检查状态。