Javascript 远程:true表单避免js字段验证
这是我的表格:Javascript 远程:true表单避免js字段验证,javascript,ruby-on-rails,validation,client-side-validation,Javascript,Ruby On Rails,Validation,Client Side Validation,这是我的表格: <%= form_for [@company,@company_branch], :html => { :onsubmit => "return validateName();" }, remote: true do |f| %> <%= f.text_field :name %> ... 我和同样的人发生了冲突。目前我还没有找到解释,但根据我的实验,表单的远程do post独立于onsubmit函数的返回值。 我在服务器端使
<%= form_for [@company,@company_branch], :html => { :onsubmit => "return validateName();" }, remote: true do |f| %>
<%= f.text_field :name %>
...
我和同样的人发生了冲突。目前我还没有找到解释,但根据我的实验,表单的远程do post独立于onsubmit函数的返回值。 我在服务器端使用了表单验证,并返回了一个js以处理验证错误 更新。 在Rails 2中?并且至少3,form_form,:remote=>true重写:onsubmit=>'func;'方法进行实际表单提交。如果您想在表单提交之前或提交期间或之后将其绑定到表单上!,使用jQuery.bind绑定表单,然后观察AJAX回调函数以执行所需操作
<script type="text/javascript>
function get_address_information() {
// check jquery for all the possible callbacks. there is also success and error. compete get calls after both success and error
var pars = 'param1=x&param2=y&param3=z';
$.ajax({ type: "POST",
url: "/get_invite_address",
data: pars, dataType: 'script',
beforeSend: function() {
// do your before send checking here
},
complete: function(data, status) {
// do some post processing ehre
}
});
}
</script>"
在中,变体工作解决方案是将验证绑定到ajax:beforeSend事件,beforeOneClick函数返回false或true:
$('form')
.bind('ajax:success', function(evt, data, status, xhr) {
console.log('success: ' + xhr + '/' + status + '/' + data);
})
.bind("ajax:beforeSend", function(evt, xhr, settings){
return beforeOneClick();
})
.bind('ajax:complete', function(evt, xhr, status){
console.log('complete');
})
.bind("ajax:error", function(evt, xhr, status, error){
console.log('error:' + xhr + '/' + status + '/' + error);
});
$('form')
.bind('ajax:success', function(evt, data, status, xhr) {
console.log('success: ' + xhr + '/' + status + '/' + data);
})
.bind("ajax:beforeSend", function(evt, xhr, settings){
return beforeOneClick();
})
.bind('ajax:complete', function(evt, xhr, status){
console.log('complete');
})
.bind("ajax:error", function(evt, xhr, status, error){
console.log('error:' + xhr + '/' + status + '/' + error);
});