Отправьте HTML-форму со ссылкой Javascript, а также с полем подтверждения

Я пытаюсь отправить данные формы, но вместо стандартной кнопки «Отправить» я хочу использовать обычную HTML-ссылку. Однако, когда я нажимаю эту ссылку, я хочу получить окно подтверждения, предлагающее пользователю продолжить или отменить. У меня есть обе части головоломки, но когда я складываю их вместе, они не очень хороши. Вот что у меня сейчас есть для кода Javascript:

function confirmSubmit()
{
var agree=confirm("Are you sure you wish to delete this file?");
if (agree)
    return true ;
else
    return false ;
}
function submitform() {
    document.forms["delete14"].submit();
}

А для HTML у меня есть:

<a href="javascript:submitform()" onClick="javascript:confirmSubmit()">link text</a>

Окно подтверждения появляется, как и предполагалось, и форма отправляется правильно. Но в настоящее время форма отправляется, даже если пользователь нажимает «нет» в поле подтверждения.


person scott.j.lockhart    schedule 06.06.2013    source источник


Ответы (2)


Попробуй это:-

function confirmSubmit()
{
var agree=confirm("Are you sure you wish to delete this file?");
if (agree)
    document.forms["delete14"].submit();
else
    return false ;
}
person pvnarula    schedule 06.06.2013
comment
Вау, я чувствую себя немного глупо. Большая часть моей работы с кодированием до сих пор была связана с PHP, поэтому тот маленький Javascript, который у меня сейчас есть, был фрагментами, которые я скопировал и вставил. В любом случае, большое спасибо! - person scott.j.lockhart; 07.06.2013

Во-первых, не используйте ссылку, если она вам не нужна, используйте стилизованный диапазон (или кнопку, которая говорит пользователю «щелкните меня, и что-то произойдет», а не ссылку, которая гласит: «щелкните меня, и я перенаправлю на другую страницу »).

Кроме того, не используйте «javascript:» в атрибуте, который ожидает значение скрипта, это будет рассматриваться как бесполезный ярлык.

Во всяком случае, ваша проблема в том, что у вас есть два слушателя по ссылке:

<a href="javascript:submitform()" onClick="javascript:confirmSubmit()">link text</a>

Тот, кто указан в href, безоговорочно отправит форму. Так что используйте диапазон и избавьтесь от href:

<span style="cursor: pointer; text-decoration: underline"
   onclick="confirmSubmit()">link text</span>
person RobG    schedule 06.06.2013