我有一个表单,我试图通过ajax提交,我有一些我不明白的问题。
所以我在main.js的顶部定义了以下函数:
function formSubmit() {
var valid = true;
$(this).find('input, select, textarea').each(function(index, el) {
if(valid)
{
if($(el).is(':hidden'))
{
$(el).removeAttr('required');
}
if(!el.checkValidity())
{
valid = false;
//el.focus();
}
}
});
if (!valid)
return; // not ready to submit
var options = {
url: document.location.origin + 'update.php',
type: 'post',
dataType: 'json',
beforeSubmit: showRequest, // pre-submit callback
success: showResponse, // post-submit callback
error: showError // post-submit callback
};
// bind form using 'ajaxForm'
$(this).ajaxSubmit(options);
};
稍后在我的main.js中,我点击按钮时会运行以下行:
$('#contact-form').formSubmit();
同样在我的main.js中我有:
$('body').on('change', '#contact-form', formSubmit);
在我的HTML中:
<form name="contact" id="contact-form">
<input type="text" name="name" value="" required>
<input type="hidden" name="page" value="contact">
</form>
当我运行$('#contact-form').formSubmit();
行时,我收到错误:
Uncaught TypeError: $(...).formSubmit is not a function
但是,当我只是编辑名称字段(触发&#34;更改&#34;行)时,它会更新并运行该函数。
我错过了什么?
编辑:看起来我正在寻找的结果并不明显,可能是因为我对javascript并不是很熟悉。我想要做的是有一个运行formSubmit()
函数的按钮,使得该函数中的$(this)
元素是表单元素。
我以为我可以运行$('#contact-form').formSubmit()
来做到这一点,但显然不是吗?
如何运行formSubmit()
函数,以便该函数中的$(this)
引用ID为'#contact-form'
的元素?
答案 0 :(得分:1)
答案 1 :(得分:0)
尝试提交。
$('#contact-form').submit(function(){
}