我有2个表单,一个用于打印,一个用于云,在每个表单中我有一个输入字段,用户应该在输入字段中写入他们的电子邮件地址,当用户提交按钮例如在打印表单中时,它应该发送一个电子邮件与用户的电子邮件地址(只需输入feild通知)打印电子邮件地址,当用户在Cloud Form中提交按钮时,它应该发送一封电子邮件到Cloud Email地址。
例如;。如果Form = Print将Print Form中的Input字段的值发送到Print Email Addresse
如果Form = Cloud,则将Cloud Form中的Input字段的值发送到Cloud Email Address
我可以得到它只适用于One Form,例如Print,但我不知道如何让这些东西适用于其他形式如云。任何人都可以指出我正确的方向!谢谢:)
PrintForm HTML标记:
<form id="PrintForm">
<input type="text" id="txtEmail" />
<input type="submit" value="Send" />
</form> <br>
CloudForm HTML标记:
<form id="CloudForm">
<input type="text" id="txtEmail" />
<input type="submit" value="Send" />
</form>
AJAX:
<script>
$(document).ready(function () {
$("#PrintForm").submit(function (e) {
e.preventDefault();
var email = $("#txtEmail").val();
$.ajax({
type: 'POST',
url: "/xxx/AjaxMethod",
dataType: 'json',
data: {
email: email,
},
success: function (status) {
console.log('Send');
},
error: function () {
console.log('something went wrong - debug it!');
}
});
});
});
</script><br>
控制器:
[HttpPost]
public JsonResult AjaxMethod(string email)
{
var SubjectOne = "Print";
var SendToPrint = "Print@Print.com";
var errorMessage = "";
//BookingViewModel
Booking book = new Booking {
Email = email,
};
try
{
// Initialize WebMail helper
WebMail.SmtpServer = "smtp";
WebMail.SmtpPort = 25;
WebMail.UserName = "email@email.com";
WebMail.Password = "";
WebMail.From = "email@email.com";
WebMail.EnableSsl = true;
WebMail.SmtpUseDefaultCredentials = false;
// Send email
WebMail.Send(to: SendToPrint,
subject: SubjectOne,
body: "email: " + email + "<br>"
);
}
catch (Exception ex)
{
errorMessage = ex.Message;
}
return Json(book);
}
答案 0 :(得分:1)
在云表单上注册提交事件,就像您在打印表单中一样。
$("#CloudForm").submit(function (e) {
e.preventDefault();
var email = $("#txtEmail").val();
$.ajax({
type: 'POST',
url: "/xxx/AjaxMethod",
dataType: 'json',
data: {
email: email,
},
success: function (status) {
console.log('Send');
},
error: function () {
console.log('something went wrong - debug it!');
}
});
});
如果CloudForm和PrintForm都位于同一页面上,则必须更改文本框输入的id
,以便它们都具有唯一ID。
答案 1 :(得分:1)
将一个类添加到两个表单中:
<form id="PrintForm" id = printFormGroup">
<form id="CloudForm" id = printFormGroup">
然后修改你的AJAX以响应课程:
$(".printFormGroup").submit(function (e) {
这将涵盖具有相同类别的所有表单,并将返回用户输入的任何内容。
答案 2 :(得分:0)
您需要通过添加名为formType
,
[HttpPost]
public JsonResult AjaxMethod(string email, string formType)
{
if(formType == "print")
{
//Perform print related stuff
}
else if(formType == "cloud")
{
//Perform cloud related stuff
}
}
使用data: { email, formType: "print"}
更新您的AJAX通话以获取打印表单
$.ajax({
type: 'POST',
url: "/xxx/AjaxMethod",
dataType: 'json',
data: {
email: email,
formType: "print"
},
success: function (status) {
console.log('Send');
},
error: function () {
console.log('something went wrong - debug it!');
}
});
云表单 data: { email, formType: "cloud"}
,
$.ajax({
type: 'POST',
url: "/xxx/AjaxMethod",
dataType: 'json',
data: {
email: email,
formType: "cloud"
},
success: function (status) {
console.log('Send');
},
error: function () {
console.log('something went wrong - debug it!');
}
});