以下是我的表格,其中每行都有2个onClick事件。当我单击每一行时,它会调用我定义的方法,但是现在您看到最后一列有一个复选框。我想要如果单击此复选框,则无需在Javascript onClick 中调用此方法,这可能吗?

注意:在运行循环时php:

echo "<tr onclick='getDetails($cdid), visited(this);'>";
echo "<td class='' valign='top' align='left' width='20'>$companyName</td>";
echo "<td class='' valign='top'>$family_name</td>";
echo "<td class='' valign='top'>$given_name</td>";
echo "<td class='' valign='top'>$department</td>";
echo "<td class='' valign='top'>$title<input type='checkbox' name='add_to_project'/></td>";
echo "</td>";
echo "</tr>";

更新:

函数getDetails(id){
    try {
        keepcontact = false;
        if($("#contentText").val() != "" && $("#contentText").val() != null)
        {
            var toCharNotes = $('#saveToChrNote').is(':checked');
            //AUTO save the charnotes if is checked without prompt
            if( toCharNotes == true ){
                var formData = new FormData($("#addNewNotes").parents('form')[0]);
                    var cid=$(this).parents('form:first').find('#cdid').val();

                    $.ajax({
                        url: 'response.php',
                        type: 'POST',
                        xhr: function() {
                            var myXhr = $.ajaxSettings.xhr();
                            return myXhr;
                        },
                        success: function(data){
                          getDetails2(id);


                        },
                        data: formData,
                        cache: false,
                        contentType: false,
                        processData: false
                    });
            } else {
                var saveNote = confirm("Save or clear Enter Note before proceeding ?");
                if (saveNote == true) {
                    var formData = new FormData($("#addNewNotes").parents('form')[0]);
                    var cid=$(this).parents('form:first').find('#cdid').val();

                    $.ajax({
                        url: 'response.php',
                        type: 'POST',
                        xhr: function() {
                            var myXhr = $.ajaxSettings.xhr();
                            return myXhr;
                        },
                        success: function(data){
                          getDetails2(id);


                        },
                        data: formData,
                        cache: false,
                        contentType: false,
                        processData: false
                    });

                } else {
                    keepcontact = true;
                    // do nothing.. :D
                    //getDetails2(id);
                }
            }
        }
        else{
            getDetails2(id);
        }
    }
    catch(err){
        alert(err);
    }
}

最佳答案

稍微修改一下功能

function visited(a)
{
 if(a.getAttribute("name")=="add_to_project") return;
// Rest of the code of your function

}

将此行放在函数visited的顶部
if(a.getAttribute("name")=="add_to_project") return;

修改一下PHP
echo "<tr onclick='getDetails($cdid, this), visited(this);'>";

并修改getDetails函数
function getDetails(a, b)
{
if(b.getAttribute("name")=="add_to_project") return;
// Rest of the function

}

10-05 20:52
查看更多