Как сказал Нахом, за исключением того, что я бы поместил вызов javascript:message()
непосредственно в href-часть (тогда не нужно для onclik).
Примечание: оставив вызов JavaScript в OnClick имеет преимущество: в HREF атрибута, вы можете поместить URL, чтобы пойти, если пользователь не включен JavaScript. Таким образом, если у них есть JS, ваш код запускается. Если они этого не делают, они отправляются куда-нибудь, где им поручено включить его (возможно).
Теперь ваша message
процедура должна не только задавать вопрос, но и использовать ответ: если положительный, он должен вызвать submit() в форме для отправки формы. Вы можете передать this
во время вызова, чтобы облегчить выбор формы.
Лично я бы выбрал кнопку (ввод тэга, как вы показываете), вместо простой ссылки для выполнения этого процесса: он использовал бы более знакомую парадигму для пользователей.
[EDIT] Так как я предпочитаю, чтобы проверить ответы, которые я даю, я написал простой тест:
<script type="text/javascript" language="JavaScript">
function AskAndSubmit(t)
{
var answer = confirm("Are you sure you want to do this?");
if (answer)
{
t.form.submit();
}
}
</script>
<form action="Tests/Test.html" method="GET" name="subscriberAddForm">
<input type="hidden" name="locationId" value="2721"/>
<input type="text" name="text" value="3.1415926535897732384"/>
<input type="button" name="Confirm" value="Submit this form" onclick="AskAndSubmit(this)"/>
</form>
Да, Представлять просто перезагрузить страницу здесь ... Испытано только в FF3.
[EDIT], а затем предложение в комментариях ... :-)
«t.parentNode» работает для этого примера, но он хрупкий, потому что он содержит предположение. Лучше «t.form». – Tomalak 2008-11-16 12:02:35
Tomalak правильный, t.form будет лучше. – scunliffe 2008-11-16 13:05:20