我可以帮助您进行翻译。以下是涉及IT技术的内容:
根据页面不同,我希望能够使用jQuery动态更改表单的属性,特别是action属性。
使用上面的代码段,正确的操作“emailaccounting”被调用。 为什么?我不知道......希望有人能解释一下。但我还没有摆脱困境 - 我有一个输入元素来上传文件。现在当我尝试在先前有效的同一表单上上传文件时,我点击提交按钮就会进入“邮件”操作。如果我不尝试上传文件,则会进入“emailaccounting”操作。
我在网页上有一个表单,长成这样:
<form action="/home/email" enctype="multipart/form-data" id="email-form" method="post">
// form elements
</form>
根据页面不同,我希望能够使用jQuery动态更改表单的属性,特别是action属性。
$('#send-email').click(function () {
$('#email-form').attr('action', '@Url.Action("emailaccounting", "home")')
)};
以上的jQuery成功渲染为:
<form action="/home/emailaccounting" enctype="multipart/form-data" id="email-form" method="post">
// form elements
</form>
我可以在单击打开弹出窗口发送电子邮件的链接时更改表单属性。然而,当我提交表单时,被触发的操作是原始的“email”,而不是“emailaccounting”。
我进行了一些尝试并在电子邮件表单的提交单击处理程序中添加了以下内容:
$('.send-email').click(function (e) {
// The original form action post will be hit without this...
e.preventDefault();
$('#email-form').submit();
};
使用上面的代码段,正确的操作“emailaccounting”被调用。 为什么?我不知道......希望有人能解释一下。但我还没有摆脱困境 - 我有一个输入元素来上传文件。现在当我尝试在先前有效的同一表单上上传文件时,我点击提交按钮就会进入“邮件”操作。如果我不尝试上传文件,则会进入“emailaccounting”操作。
- 为什么e.preventDefault()后跟表单提交会触发正确的操作?
- 为什么上传文件会将其定向到原始的表单操作而不是jQuery修改后的操作?
/home/emailaccounting
而不是原始的/home/email
。 - Darin Dimitrov