设置 On Change on Change 来自参数的 id 不起作用

Setting On Change on id from parameter does not work

我正在使用 SharePoint 2013,但这更像是 jQuery question/issue。 在 SharePoint 中,表单元素根据名称和某种键获得 ID。

我能够获取要向其中添加 "on change" 函数的表单元素的 ID。

var idEventDate = $('nobr:contains("Event Date")').closest('tr').find('input[title$="Event Date"]').prop('id');

我使用警报来确保我获得了价值。

当我获取该值并创建一个 "on change" 侦听器时,没有任何反应。也没有任何错误。

在下面的代码中,我在 div 中插入,然后尝试将 "on change" 函数添加到事件日期字段元素。

<script type="text/javascript">
_spBodyOnLoadFunctionNames.push( "sharePointReady" );

function sharePointReady() {
    // Adding a Title as a quick way to determine which screen I am on
    $('nobr:contains("Title")').closest('table').before('<div id="customHeader"><h1>Create a New Memo</h1></div>');

    var idEventDate = $('nobr:contains("Event Date")').closest('tr').find('input[title$="Event Date"]').prop('id');

    $(document).on("change","#" + idEventDate, function(){
        alert("changed");
    });
}

我发现不需要获取 ID,因为我已经找到了元素。

$('nobr:contains("Event Date")').closest('tr').find('input[title$="Event Date"]').on("change",  function(){
        alert("changed");
    });

但是,我仍然希望能够将 ID 获取为字符串。但是,就目前而言,这只是一个额外的不必要步骤。