2014-10-20 3 views
0

Я хочу дать предупреждение пользователю с подтверждением, если они хотят сохранить без загрузки изображения.Подтвердить поле в приложении веб-формы asp.net

код срабатывает, если пользователь для нажмите на кнопку

if (string.IsNullOrEmpty(obj.Image)) { 
    obj.Image= null; 
    //Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "alert('Please Upload Image!');", true); 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "confirm('Are you sure you want to save without uploading images?');", true); 
} 

сохранить Выше логика была для показа окно подтверждения, но он не показывает.

Кроме того, как я могу отловить, если пользователь нажал кнопку Yes или No?

, так что я могу выполнить соответствующий код.

Update:

Я могу показать окно подтверждения с помощью следующего кода

Page.ClientScript.RegisterStartupScript(this.GetType(), "msgbxConfirm", "confirm('Are you sure?');", true); 

Но я не уверен, как я иду в ловушку YES или No событие

+0

Вы не в функции, так что вам не нужно 'return' заявление - это, вероятно, вызывает синтаксическую ошибку, поэтому коробка не показывает – Rhumborl

+0

Я удалил это раньше, позвольте мне обновить код вопроса. – Learning

ответ

3

Чтобы справиться с результат всплывающего окна подтверждения - проверьте возвращаемое значение.

Если щелкнуть OK, оно вернет true, иначе оно вернет false.

EG:

if(confirm('test')) { 
    alert('ok clicked') 
} else { 
    alert('cancel clicked or closed popup') 
} 

JSFiddle example code in action

EDIT: комментарии

Чтобы повторно отправить форму, если пользователь нажимает кнопку OK в диалоговом подтверждения что-то вроде этого является то, что вам нужно:

Codebehind:

Page.ClientScript.RegisterStartupScript(
    this.GetType(), 
    "msgbxConfirm", 
    "doConfirm();", 
    true 
); 

ASPX страница:

<script type=text/javascript> 

function doConfirm() { 
    if(confirm('Are you sure?') { 
     document.getElementById(<id_of_form_submit_button>).click(); 
    } 
} 
</script> 
+0

Это java-скрипт, но как я могу это сделать из файла с кодом C# – Learning

+0

Что вам нужно делать? Похоже, вы проверяете запись формы (загрузка файла) с помощью codebehind, которая, вероятно, лучше подходит для проверки javascript. –

1

Одно я добавляю здесь, вы не можете получить результат подтверждения в стороне сервера кода, вы должны написать этот код в JS стороне. Поэтому, чтобы поддерживать его лучше, вы можете использовать следующий JS в aspx.

function ConfirmAndExecute() 
{ 
    if(confirm("Are you sure?")) 
    { 
     OnConfirm(); 
    } 
    else 
     alert("you missed !") 
} 
function OnConfirm() 
{ 
    // JS Code to handle post confirm operation 
} 

И на стороне сервера, page_load, используйте следующее.

Page.ClientScript.RegisterStartupScript(this.GetType(), "msgbxConfirm", "ConfirmAndExecute();", true);

+0

Это нормально, но мне нужно проверить статус в коде. Я думаю, что это можно сделать, установив значение в скрытое поле и получив доступ к этому скрытому полю в коде ..... – Learning

+0

Да, вы правы! @KnowledgeSeeker, я думал сказать вам, «что не может быть сделано», поэтому я упомянул об этом. –

0

Вы также можете просто добавить OnClick дескриптор клиента события сценария, чтобы предотвратить представление формы, если подтверждение не верно, так что вам не придется иметь дело с регистрацией сценария. Просто добавьте код в ваш asp:button определение

<asp:Button id="btnSave" Text="Save" runat="server" onclick="return confirm('Are you sure?');" /> 
Смежные вопросы