我爲我的項目使用YUI 2.7.0和Struts,並且有一個帶有兩個提交按鈕的窗體。一個是保存,另一個是刪除。表單提交給DispatchAction。我已經成功添加了onclick監聽器,但問題是表單在偵聽器執行之前提交。我需要在表單提交之前設置調度參數。我該怎麼做呢?下面是我到目前爲止有:yui提交按鈕和調度動作
<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),如果按下Delete User,要提交表單。根據這個鏈接,但它仍然是: http://yuilibrary.com/forum/viewtopic.php?p=1216 – 2009-12-31 22:23:12
@加里:我已經添加了更多的細節,我的答案。請看一看。 – 2010-01-03 22:48:42