JQuery:如何在发送表单之前执行代码

时间:2016-02-28 02:04:01

标签: javascript jquery forms

我创建了一个表单并将其attr设置为onsubmit="return false"

现在我需要在实际提交之前执行一些操作,如下所示:

$('input[name=submit]').click(function(){
    $('.switch-input').attr('checked','checked');//getting all values of chbz
    //here goes a little more code//
    $('form[name=setform]').removeAttr('onsubmit');//finally sending to $_POST
});

乍一看一切正常,但我想它会在发送之前100%执行所有代码还是我做错了?

2 个答案:

答案 0 :(得分:1)

您可以考虑取消onsubmit属性,而是使用您的.click()代码,最后只返回false。您也可以按照Stiliyan的建议使用.submit()

答案 1 :(得分:1)

int getAge(Date dateOfBirth){ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd") print(">>>><><><><<<<<<<<<<<<><><><><><><><><") print("date of birth"); print(dateOfBirth) print(">>>><><><><<<<<<<<<<<<><><><><><><><><") print("current date") print(new Date()) print(">>>><><><><<<<<<<<<<<<><><><><><><><><") Date currentDate = new Date() def cd = dateFormat.format(currentDate) String date = dateFormat.format(dateOfBirth) return 5; } 属性将阻止按正常情况提交表单。但是,当用户单击“提交”输入时,上述代码段将执行一次,删除onsubmit="return false"属性并使表单能够正常提交,但用户必须再次单击“提交”才能提交。

您可以保留现有的代码段并告诉jQuery通过.submit()方法的第三种变体明确提交表单:

onsubmit

或者,您可以删除$('input[name=submit]').click(function(){ $('.switch-input').attr('checked','checked');//getting all values of chbz //here goes a little more code// $('form[name=setform]').removeAttr('onsubmit');//make the form submittable $('form[name=setform]').submit();//finally sending to $_POST }); 属性,并使用方法的onsubmit="return false"变体,这样可以简化代码并保证处理程序在表单提交之前执行:

.submit(handler)