Я использую YUI 2.7.0 и Struts для своего проекта и имею форму с двумя кнопками отправки. Один для Save, а другой для Delete. Форма отправляется в DispatchAction. Я добавил слушателей onclick успешно, но проблема заключается в том, что форма отправляется перед выполнением прослушивателей. Мне нужно установить параметр отправки до отправки формы. Как мне это сделать? Ниже то, что я до сих пор:yui submit button and dispatch action
<form name="adminUserForm" method="post" action="manage_user.do">
<input type="hidden" id="dispatch" name="dispatch" value="unspecified"/>
<!-- other form fields here -->
<input type="submit" value="Save User" id="saveUser">
<input type="submit" value="Delete User" id="deleteUser">
</form>
<script type="text/javascript">
function confirmDelete(msg)
{
if (confirm(msg))
{
return setDispatchMethod("delete");
}
else
return false;
}
function setDispatchMethod(methodName)
{
dispatchField = document.getElementById("dispatch");
dispatchField.value = methodName
return true;
}
var onClickSaveUser = function (e)
{
return setDispatchMethod('save');
};
var onClickDeleteUser = function (e)
{
return confirmDelete('Are you sure you want to delete the user?');
};
new YAHOO.widget.Button("deleteUser", {onclick: {fn: onClickDeleteUser }});
new YAHOO.widget.Button("saveUser", {onclick: {fn: onClickSaveUser }});
</script>
Хм, звук близок, но отсутствующий элемент, который я, возможно, явно не выражал в своем примере кода (onClickDeleteUser должен вернуть значение confirmDelete, которое должно возвращать true/false), заключается в том, что если нажать кнопку «Удалить пользователя», t хотите, чтобы форма была отправлена. Согласно этой ссылке, тем не менее, это все равно будет: http://yuilibrary.com/forum/viewtopic.php?p=1216 –
@Gary: Я добавил гораздо больше подробностей к моему ответу. Пожалуйста, смотрите. –