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

それがIDの場合、次のことができます:

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

prop()ブール値を取る属性を変更するときに使用します。

于 2013-05-31T17:38:48.400 に答える
12

.attr()の代わりに.prop()を使用して、checked や disabled などのランタイム プロパティを変更します。

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

.prop()のドキュメントで違いについて詳しく読むことができます

于 2013-05-31T17:38:55.980 に答える