我有正常的按钮,我使用jquery进行客户端验证。事情是我也想添加服务器端验证,但是当输入是类型提交jquery代码不起作用。当我使用是否可以在没有提交按钮的情况下验证表单?
$('#addperson').submit(function(event){
event.preventDefault();
//code for client side checks
});
客户端代码无法正常工作。请有人知道是否有办法让我的按钮同时在客户端和服务器端工作?
我有正常的按钮,我使用jquery进行客户端验证。事情是我也想添加服务器端验证,但是当输入是类型提交jquery代码不起作用。当我使用是否可以在没有提交按钮的情况下验证表单?
$('#addperson').submit(function(event){
event.preventDefault();
//code for client side checks
});
客户端代码无法正常工作。请有人知道是否有办法让我的按钮同时在客户端和服务器端工作?
只需首先进行表单验证客户端,比做$('form').submit()
并发送所有信息到服务器。
$('button').click(function() {
if (validateMyForm()) {
$('form').submit();
}
});
function validateMyForm() {
// check if valid
[...]
return isValid
}
<form>
<input type="text" name="name"/>
<button type="button">Submit</button>
</form>
那么服务器端验证呢?我的意思是我猜测OP在**提交'form'之前(例如避免重复的用户电子邮件等)使用一些ajax(异步)来请求服务器和验证数据服务器端**。你应该使用承诺来处理它。否则,如果不需要等待任何服务器端验证,那么您的代码当然是正确的。编辑:我重读的问题后,它真的不清楚预计行为,所以也许我完全错了 –
我想要的是,如果一个字段已被留空,例如客户端和服务器端都显示错误消息 – princesse
@ A.Wolff是的,如果使用Ajax并等待响应,则说得对,而不是更复杂,但OP没有指定任何细节。所以我假设你使用客户端验证,而不是使用Ajax调用。 – Justinas
'提交事件' 可能会帮助你
var valid = false;
$("#valid").on('change', function(){
valid = this.checked;
})
$('#form').on('submit', function(e){
console.log(valid);
if(!valid) {
e.preventDefault();
$('#ipt').val('oops, stopped');
} else {
$('#ipt').val('sending');
//yey
}
});
工作jsbin: https://jsbin.com/nowirij/4/edit?html,console,output
那是因为你阻止了默认的行为。如果表单无效,则防止默认行为。 – Progrock
1 - 点击按钮; 2 - 在客户端进行验证; 3 - 发送ajax到服务器端或重定向到你在服务器端验证的地方 –
请问你是什么意思的重定向到功能? – princesse