Удалить строку подтвердите с помощью jquery и jsf

Я пытался найти решение на этом форуме в течение пяти дней и нашел несколько похожих ситуаций, но все равно не смог решить свою проблему.

1- Я использую чистый JSF
2- Мне нужно перед удалением строки из моей таблицы есть подтверждение, модальное (я пытаюсь использовать smartNotifications)
3 - Я могу вызвать функцию javascript и приостановить действие удаления, но после нажатия кнопки "Да, я хочу удалить запись" не продолжает процесс стирания записи, стоит на том же месте.

Следуйте моему примеру ниже

Java-код

<h:form id="form1">
    <h:datatable id="tab1">
      <h:column id="column1">
        <f:facet name="header">User</f:facet>
        <h:outputText rendered="#{bean.User}"></h:outputText>
      </h:column>
      <h:column id="column2">
        <h:commandlink onclick="delete();" action="#{bean.deleteUser}" />
      </h:column>
    </h:datatable>
</h:form>

Javascript:

function delete(e) {
  $.SmartMessageBox({
    title: "Are you Sure?",
    content: "This action can not be undone",
    buttons: '[Yes][No]'
 }, function (ButtonPressed) {
    if (ButtonPressed === "Yes") {
        return true;
    }
    if (ButtonPressed === "No") {
        return false;
    }
});
e.preventDefault();

}

пожалуйста, помогите мне

1 ответ

Они запускают ваш код e.preventDefault() get вызывается в любом случае. То, что вы хотите (я предполагаю), это поставить e.preventDefault(); в кнопке if === Нет раздела

function delete(e) {
  $.SmartMessageBox({
    title: "Are you Sure?",
    content: "This action can not be undone",
    buttons: '[Yes][No]'
 }, function (ButtonPressed) {
    if (ButtonPressed === "Yes") {
        return true;
    }
    if (ButtonPressed === "No") {
        e.preventDefault();
    }
});
}
Другие вопросы по тегам