Check the example below:
1.Create a custom list with Yes/No Column "YesNoColumn" and single line of text column "Updated by".
2.Add code below into a script editor web part in new form page.
<script src="//code.jquery.com/jquery-3.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("input[title='Updated by']").val(getUserName());
$("input[title='Updated by']").attr("readonly","true").css('background-color','#F6F6F6');
});
function getUserName(){
var username;
var userid = _spPageContextInfo.userId;
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
// execute AJAX request
$.ajax({
url: requestUri,
type: "GET",
async: false,
headers: { "ACCEPT": "application/json;odata=verbose" },
success: function (data) {
username=data.d.Title;
},
error: function () {
}
});
return username;
}
</script>
3.Add the code below into script editor web part in Edit form page.
<script src="//code.jquery.com/jquery-3.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var fieldValue=$("input[title='YesNoColumn']").is(":checked");
var updatedby=$("input[title='Updated by']").val();
$("input[title='Updated by']").attr("readonly","true").css('background-color','#F6F6F6');
$("input[title='YesNoColumn']").change(function(){
if($(this).is(":checked")!=fieldValue){
$("input[title='Updated by']").val(getUserName());
}else{
$("input[title='Updated by']").val(updatedby);
}
});
});
function getUserName(){
var username;
var userid = _spPageContextInfo.userId;
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
// execute AJAX request
$.ajax({
url: requestUri,
type: "GET",
async: false,
headers: { "ACCEPT": "application/json;odata=verbose" },
success: function (data) {
username=data.d.Title;
},
error: function () {
}
});
return username;
}
</script>
