ajax 阻止默认提交,jQuery验证插件:在对ajax调用servlet时,submitHandler不会阻止默认提交-返回false无效...

我有一个使用jquery和servlet的简单表单。jQuery对Servlet进行Ajax调用,然后Servlet进行一些服务器端计算,然后通过jQuery在同一页面上显示结果。我不希望表单进行默认的提交(并转到servlet),因为我想停留在同一页面上并动态显示结果。它完全按照我想要的方式工作:

HTML:

jQuery的:

form.submit (function(event) {

$.ajax({

type: form.attr("method"), // use method specified in form attributes

url: form.attr("action"), // use action specified in form attributes (servlet)

data: form.serialize(), // encodes set of form elements as string for submission

success: function(data) {

// get response form servlet and display on page via jquery

}

});

event.preventDefault(); // stop form from redirecting to java servlet page

});

现在,我想添加表单验证,因为该servlet期望十进制数来进行计算。应该只允许用户输入数字,不能输入其他字符。为此,我采用了流行的jQuery

Validation插件。

验证工作正常,但是要对servlet进行ajax调用,我必须使用jQuery

Validation提供的SubmitHandler,而不是上面显示的jQuery

Submit方法。当我使用验证submitHandler时,将执行表单上提交的默认操作,转到Servlet页面,而不是停留在同一页面上以在jQuery中动态显示我的结果。我必须向formHandler传递一个表单,而不是像以前那样传递一个事件,这使我能够阻止默认操作。唯一的选择是返回false,但是它不起作用。在过去的两天里,我一直在努力解决这个问题,并且已经使我的google-

fu筋疲力尽了。这是给我悲伤的新代码:

form.validate({

rules: {

number0: ruleSet,

number1: ruleSet,

number2: ruleSet,

number3: ruleSet,

},

submitHandler: function (form) {

$.ajax({

type: "POST",

url: form.attr("action"),

data: form.serialize(),

success: function () {

// get response from servlet and display on page via jQuery

}

});

return false; // required to block normal submit ajax used

}

});

任何帮助将不胜感激,我想使用这种整洁的jQuery表单验证,但我可能只是从头开始编写自己的jQuery验证,以便可以使用已经使用的表单提交方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值