2015-03-23 2 views
0

Я пробовал свое решение на этом форуме в течение пяти дней и обнаружил некоторые подобные ситуации, но до сих пор не смог решить мою проблему.удалить строку с помощью 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(); 

}

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

+0

Вы говорите, что используют чистый JSF, но попытаться решить его в JQuery ... – Kukeltje

ответ

0

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

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(); 
    } 
}); 
} 
+0

Привет Кевин, спасибо ... Действительно функция e.preventDefault(); кажется, не в том месте, но когда я ставлю ниже if, выполнение не останавливается сейчас ... теперь появляется экран подтверждения, но запись удаляется из таблицы. Я думаю, что если бы я мог поставить e.preventDefault перед двумя ifs, работал бы, но я не знаю, как это сделать ... – fsantannadi

+0

Возможно, поместите e.preventDefault в начало функции, чтобы он был остановлен в любом случае (или удалить действие из вашего java-кода, если это опция) и запустить действие в if (button = yes) –

Смежные вопросы