我不是一个技术完全,我试图为WordPress构建自定义主题。 所以,我到了一个地步,我需要实现一个自定义的JS脚本来发送表单数据。据我了解,这将是一个PHP文件,但现在我专注于前端。这是AJAX + jQuery验证。 我不希望我的表单在发送数据后刷新页面,只是一个简单的消息,告诉一切都成功了。在Wordpress中提交Ajax和jQuery自定义表单提交
任何人都可以看看我写的代码并告诉我它有什么问题吗?它花了我两天..
PS - 该文件,存储代码嵌入到WP主题正确,与jQuery作为依赖。我想知道,我必须做任何事情来实现AJAX,或者它带有jQuery?
http://codepen.io/anon/pen/MpdRpE
<form class="form">
<div class="form__item form__item_no-margin">
<input type="text" name="firstname" placeholder="What's your name?*" class="firstname" required>
<p class="error-message">Sorry, but this field can't be empty.</p>
</div>
<div class="form__item">
<input type="text" name="email" placeholder="What's your email address?*" class="email" required>
<p class="error-message">Oopps, I haven't seen emails like that.</p>
</div>
<div class="form__item">
<textarea name="comment" placeholder="Want to leave any message?*" class="textarea" required></textarea>
<p class="error-message">Nothing to say at all? Really?</p>
</div>
<div class="form__item">
<input type="button" name="submit" value="Send" class="submit-btn">
<p class="error-message error-message_main val-error">All the required fields have to be filled out.</p>
<p class="error-message error-message_main_success val-success">Thanks. I'll contact you ASAP!</p>
</div>
</form>
.error-message {
display: none;
}
jQuery(document).ready(function(){
jQuery(".submit-btn").click(function(){
var name = jQuery(".firstname").val();
var email = jQuery(".email").val();
var message = jQuery(".textarea").val();
if(name === "" || email === "" || message === "") {
jQuery(".val-error", ".error-message").css("display", "block");
}
else {
jQuery.ajax({
url:"/assets/php/send.php",
method:"POST",
data:{name:firstname, email:email, message:comment},
success: function(data) {
jQuery("form").trigger("reset");
jQuery(".val-success").show(fast);
}
});
}
});
});
谢谢!帮了很多。 – zametsv
这个动作:“validate_form”,这是一个我需要传递给WP钩子的变量吗? – zametsv
没有它的挂钩名称,请参阅链接的文档 – madalinivascu