我正在尝试更新其他开发人员的现有代码。我面临着混乱行动的问题。
现有:
<s:form name="f2" action="delFood.action">
<input type="submit" value="Delete" class="button" onClick="javascript:get_check_value()"/>
我要更新的代码:
<input type="file" class="button" id="foodItemFile" name="foodItemFile" value="Browse ..."/>
<input type="submit" class="button" value="AddFood" onClick="callAddFood();"/>
我的Javascript: 在我的脚本中,我尝试通过以下代码提交我的操作。
document.f2.action = "AddFoodAction.action";
document.f2.submit();
似乎当我点击[AddFood]按钮时,它总是调用[delFood.action]。
为了添加食物,我需要在调用[AddFoodAction.action]动作之前用javascripts检查一下。
由于限制,我无法更改现有代码。我只能在现有代码中添加新代码。
那么, 如何从javascripts调用[AddFoodAction.action]而不会混淆同一表单的其他动作?
非常感谢。
答案 0 :(得分:1)
这里看起来像是一个javascript问题。确保代码
document.f2.action = "AddFoodAction.action";
document.f2.submit();
正在执行。也许document.f2
无法正确解析(可能有多个具有此名称的表单?)。
此fiddle表明它应该有效。它会在onclick
上的<input type="submit">
处理程序中更改表单的操作。
只是推荐,不要做document.f2.submit();
。它是<input type="submit">
,因此当onclick
结束时它会自动提交表单。
答案 1 :(得分:1)
最后,我这样做就解决了。
1)表格标签中没有直接的行动。
<s:form name="f2" method="post" enctype="multipart/form-data">
2)删除部分,
<input type="submit" value="Delete" class="button" onClick="javascript:get_check_value()"/>
从javascript调用delete操作,而不是直接从表单调用。
document.f2.action = "delFood.action";
3)添加部分,如删除部分。检查java脚本中的必要内容并调用add动作。效果很好。
另一种解决方案:
可能会直接从Form调用一些常见操作。对于这种方法,只需命名您的按钮并给出值并从动作类中映射这些值。并通过使用来自一个动作的那些值来区分多个方法。我在coderanch和javaSample阅读了这篇文章。感谢。