我對JQuery非常陌生。夥計們可以告訴我我的代碼有什麼問題,我想通過ajax發送電子郵件,然後在div中填充返回的字符串。我試圖從我的視圖發送數據到我的控制器使用數據,然後發回一個字符串添加到Dom中。我怎樣才能做到這一點。感謝您的時間和努力。乾杯。Ajax調用發送電子郵件不起作用。
我查看
<!-- Contact form -->
<form id="contact-form" name="contact-form" method="POST" data-name="Contact Form">
<div class="row">
<!-- Full name -->
<div class="col-xs-12 col-sm-6 col-lg-6">
<div class="form-group">
<input type="text" id="name" class="form form-control" placeholder="Write your name" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write your name'" name="name" data-name="Name" required>
</div>
</div>
<!-- E-mail -->
<div class="col-xs-12 col-sm-6 col-lg-6">
<div class="form-group">
<input type="email" id="email" class="form form-control" placeholder="Write your email address" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write your email address'" name="email" data-name="Email Address" required>
</div>
</div>
<!-- Subject -->
<div class="col-xs-12 col-sm-12 col-lg-12">
<div class="form-group">
<input type="text" id="subject" class="form form-control" placeholder="Write the subject" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write the subject'" name="subject" data-name="Subject">
</div>
</div>
<!-- Message -->
<div class="col-xs-12 col-sm-12 col-lg-12 no-padding">
<div class="form-group">
<textarea id="text-area" class="form textarea form-control" placeholder="Your message here... 20 characters Min." onfocus="this.placeholder = ''" onblur="this.placeholder = 'Your message here... 20 characters Min.'" name="message" data-name="Text Area" required></textarea>
</div>
</div>
</div>
<!-- Button submit -->
<button type="submit" id="valid-form" class="btn btn-color">Send my Message</button>
</form>
<!-- /. Contact form -->
<div id="block-answer">
<div id="answer"></div>
</div>
腳本在體溫
$('#valid-form').click(function() {
var name = $('#name').val();
var email = $('#email').val();
var subject = $('#subject').val();
var message = $('#message').val();
$.ajax({
url: '/Home/SendMessage',
data: { 'name': name, 'email': email, 'subject': subject, 'message': message },
type: "post",
cache: false,
success: function (status) {
$('#answer').text(savingStatus);
},
error: function (xhr, ajaxOptions, thrownError) {
$('#answer').text("Error encountered while saving the message.");
}
});
});
我的控制器結束
[HttpPost]
public string SendMessage(string name, string email, string subject, string message)
{
var savingStatus = "Success";
return savingStatus;
}
我確實在您的成功功能中看到一個錯字。它應該說'''$('#answer')。text(status);''' – clarmond
只需要執行'data:$(this).serialize(),'。你不需要單獨獲取每個輸入的值,然後創建一個JS對象。 –
即使這是真的先生。我將如何擊中控制器。 –