我正在尝试验证所有必要的字段在我提交之前已经在我的form_for中完成,并且95%在那里但是它仍然在检查并发出警报之前提交。
以下是表单的开头:
<%= form_for Product.new, :options => {:id => "new_listing", :onSubmit => "validateForm()"}, :url => {:action => "create"}, :html => {:multipart => true}, :builder => Judge::FormBuilder do |f| %>
这是JavaScript:
<script>
validateForm = function(){
judge.validate(document.getElementById('name_input'), {
valid: function(element) {
element.style.border = '1px solid green';
},
invalid: function(element, messages) {
element.style.border = '1px solid red';
alert(messages.join(','));
}
});
};
</script>
现在我需要做什么来确保在提交到后端之前没有填写name_input字段时抛出警报?与布尔有关但我不是这里的专家。
答案 0 :(得分:0)
当验证无效时,您可以尝试返回false。使用onSubmit
javascript函数时,除非js返回false,否则它将继续执行下一步操作。
答案 1 :(得分:0)
这是一个盲目的猜测,但这有机会工作:
judge.validate(document.getElementById('name_input'), {
...,
invalid: function(element, messages) {
...
return false;
}
});