javascript - 如何用 JavaScript/jQuery 替换表单中第二个提交按钮的操作
问题描述
注意:围绕这个主题有很多问题,我尝试了一些解决方案,这就是我走了多远,但现在我被困住了。
我想要一个连接到 servlet 并处理用户输入的“计算”按钮和一个“生成 PDF 按钮”,它打开一个新选项卡,其中包含从用户输入生成的 pdf。对于页面流,我需要把它放在一个表单中。
所以我现在有:
<form action="/myProject/input" method="post" name="inputForm" onsubmit="return validateForm()" id="inputForm">
<div>some input fields ...</div>
<div>
Results here
<button type="submit" id="pdf_button" class="button" name="pdf_button">${buttonPrint}</button>
</div>
<div>
some more input fields
<button type="submit" id="calculate_button" class="button" name="calculate_button">${buttonCalculate}</button>
</div>
</form>
注意:按钮值 ${X} 是特定于语言的,因此不适合此。
我尝试按照$(document).ready()中的建议进行以下操作:
$("#inputForm").on("submit", function() {
var $btn = $(document.activeElement);
if (
$btn.length &&
$("#inputForm").has($btn) &&
$btn.is('button[type="submit"]') &&
$btn.is("[name]")
) {
if ($btn.attr("name") == "pdf_button") {
console.log("--- IT WORKS UNTIL HERE! ---");
$("#inputForm").action =
getContextPath() + "/print?language=" + $("#language").val();
$("#inputForm").target = "_blank";
}
}
});
因为我得到了console.log,所以我检索了正确的按钮。但是在点击打印按钮时,执行的是计算动作,而不是来自 JS 的动作。 我究竟做错了什么?
到目前为止,我有两种工作正常的表单,但我想重组页面。之前的第二个表单看起来像这样,并且放在第一个表单之后:
<form action="/myProject/print?language=${lang}"
method="post" name="printForm" onsubmit="return validateForm()"
target="_blank">
<button type="submit" id="calculate_button" class="button"
name="calculate_button">${buttonCalculate}</button>
</form>
解决方案
推荐阅读
- arrays - 我创建了一个用户数组,如何使用 for 循环删除用户数组中的名称间距?
- javascript - MissingSchemaError:尚未使用 execPopulate 为模型注册架构
- ruby-on-rails - Minitest 控制器序列以断言对计算变量的更改
- bash - 使用 ssh 的远程服务器上的 Chmod 命令不起作用
- css - 如何更改 Strapi 管理面板中的按钮颜色?
- python - python多处理:无法识别的选项'--multiprocessing-fork'
- python - 如何在标记(正则表达式)之间用部分字符串替换字符串?
- java - 如何让 Swagger-UI 忽略安全过滤器
- stanford-nlp - 我正在使用带有 filelist 参数的 stanfordCoreNLP-chinese。该程序似乎在 filelist.lst 中的某些文件上失败
- java - 如何一起使用@Valid 和@Pattern (regexp="...") 注解来保存编码密码