现在的问题是当我关注 addUrlFriendlyName
输入时,来自 _InfoModal.cshtml
的模态将触发。当我关闭模态时,我想聚焦 addUrlFriendlyName
输入(因为当我点击关闭按钮时它失去了焦点)。
然而,当我以编程方式聚焦输入字段时,我会陷入无限循环。
当我以编程方式聚焦输入时,我试图防止触发 onfocus 事件。我知道您可以从 JQuery 向 trigger()
函数添加参数,这就是我在这里尝试做的。
但在 Affiliates.cshtml
文件中,data
参数始终为空。
Affiliates.cshtml
<div class="form-group">
<label for="addUrlFriendlyName">URL friendly name:</label>
<input type="text" id="addUrlFriendlyName" class="form-control ufn" />
</div>
@(await Html.PartialAsync("Partials/_InfoModal"))
<script>
$('.ufn').on('focus', function (a, data) {
// -----> data is undefined <-----
if (!data?.silence) {
showModal();
}
});
</script>
_InfoModal.cshtml
<div id="modal"></div>
<script>
function showModal(onCloseFocusElementId) {
$('#modal').modal('show');
}
$('#modal').on('hidden.bs.modal', function () {
$('#addUrlFriendlyName').trigger('focus', [{silence:true}]);
});
</script>