11

我有一个函数,其中传入了用户的名称,复选框的 ID 将是该名称,我试图让 jquery 通过 ID 检查它,但没有运气。复选框的 ID 字段由每个用户名调用,因此它需要找到传入的“名称”调用的正确复选框并检查它。

function send_new_message(name)
{
var html = new_message_form();
var div = $(html);

//Set user clicked to checked
//$("#dave").prop("checked", true);
$("#" + name).prop('checked', true);   

div.find('.send').click(function()
{
//Remove any error message
$("p.error").html('');

//Error check
var name = $("input.name").val();
var message = $("#message").val();

if(message==""){
$(".error").html('This filed is required!');
$("#message").focus();  
return false;  
}

//Send message to be processed
var post_data = name + "##@##" + message;
$.post(
'frames/process_messages.php',
{name: name, message: message},
function(result){
alert(result);
}
);      
//Close
//div.dialog('close');
});

div.dialog(
{
title:"Send New Message",
width: 450,
show: {
effect: "fold",
duration: 500
},
hide: {
effect: "explode",
duration: 500
},
close: function(){
$(this).dialog("destroy");
$(this).remove();       
}
});
}

HTML(PHP 回显)

<tr><td><input class=\'names\' id=\''.$users[$i]['name'].'\' type=\'checkbox\' name=\'names[]\' value=\''.$users[$i]['id'].'\' /></td><td>'.$users[$i]['name'].'</td></tr>

渲染

<tr><td><input class='names' id='dave' type='checkbox' name='names[]' value='3' /></td><td>dave</td></tr>

似乎不起作用:(

谢谢你的帮助。

4

3 回答 3

25

如果是身份证,你可以这样做:

$("#" + name).prop('checked', true);

prop()在更改采用布尔值的属性时使用。

于 2013-05-31T17:38:48.400 回答
12

使用.prop()而不是.attr()来更改运行时属性,例如检查和禁用

$('#'+name).prop('checked', true);

您可以在.prop()的文档中阅读有关差异的更多信息

于 2013-05-31T17:38:55.980 回答
-1

我能够使用以下代码处理特定复选框:

var myCheckbox=$("input[name='checkbox_name']");
myCheckbox.change(function(){
     if(this.checked){
          alert('checked');
     } else {
          alert('unchecked');
     }
});
于 2017-10-04T09:20:18.670 回答