ruby-on-rails - Parsley-rails 表单未提交 rails 5. 适用于其他表单
问题描述
我正在尝试在我的 rails 应用程序中的某些表单上使用 parsley-rails 验证。问题是它在某些表单上完美运行,而不能在其他表单上提交。
我尝试向所有表单元素添加 required true 。我还使用了“data-parsley-validate”=> true、“data-parsley-validate”=>“”的不同变体。似乎没有任何效果。这是有效表单的代码。
= simple_form_for(([@place, @place.reviews.build]), html: {"data-parsley-validate" => true}) do |f|
%p= "Please rate your experience"
.rating-form
%hr
= f.input :comment, input_html: {maxlength: 1000, rows: 10}, label: "Please describe your experience at the location", hint: "Enter a brief description of your experience", error: "You must provide a description for this review.", required: true
%hr
= f.submit "Review this place", :class => "btn btn-primary btn-large"
:javascript
$('.rating-form').raty({
path: '/assets',
scoreName: 'review[rating]'
});
但是,我无法在验证后提交此表单:
= simple_form_for(@place, html: {class: "form-group", "data-parsley-validate" => true}) do |f|
= f.error_notification
.form-inputs
= f.input :name, label: "Please enter the name of your place", hint: "eg. Papa Chris's Pizza.", required: true
= f.label :Select_a_category
%br
= f.collection_select :category_id, Category.all, :id, :name, prompt: "Please choose a category", required: true
%br
= f.input :short_description, label: "Please enter a short description of your place", hint: "eg. Papa Chris's Pizza.", required: true
= f.input :description, as: :trix_editor, input_html: {maxlength: 1000, rows: 10}, label: "Please describe your place", hint: "Enter a brief description of your place", required: true
= f.attachment_field :place_images_files, direct: true, multiple: true
= f.simple_fields_for :locations do |location|
= location.input :address, label: "Please enter the address of your place", hint: "eg. Lumumba Drive", required: true
= location.input :city, label: "Please enter the city of your promotion", hint: "eg. Tema", required: true
= f.input :phone, label: "Please enter your phone number", hint: "eg. 030 412 3123", :input_html => { :maxlength => 10, :"data-mask" => "999 999 9999" }, required: true
= f.input :mobile_number,label: "Please enter your mobile number", hint: "eg. 020 111 2222", :input_html => { :maxlength => 10, :"data-mask" => "999 999 9999" }, required: true
= f.input :website,label: "Please enter your website", hint: "eg. papajohns.com"
.form-actions
= f.button :submit, class: "btn btn-large btn-primary"
这是我的 application.js 文件:
//= require rails-ujs
//= require jquery3
//= require jquery-ui
//= require ./jquery.raty.js
//= require jquery.timepicker.js
//= require jquery-mask-plugin
//= require jquery.slick
//= require parsley
//= require refile
//= require trix
//= require popper
//= require bootstrap-sprockets
//= require leaflet
//= require dropzone
//= require underscore
//= require masonry/jquery.masonry
//= require_tree .
我的应用程序.css
*= require leaflet
*= require 'masonry/transitions'
*= require_tree
*= require_self
*= require trix
*= require jquery-ui
*= require jquery.timepicker.css
*= require dropzone/dropzone
*= require parsley
*/
控制台和 Web 检查器中没有显示任何内容。提交按钮不起作用。
解决方案
显然,Trix 正在对禁用的输入触发欧芹验证。请参阅此 Trix 问题。解决方案是将 'data-parsley-excluded="[disabled]" 添加到您的表单中,如下所示:
<form data-parsley-validate data-parsley-excluded="[disabled]">
<trix-editor></trix-editor>
<input type="submit">
</form>
推荐阅读
- azure-devops - Azure DevOps 发布管道:Angular 和 .NET Core 应用程序
- javascript - 自定义属性验证:根据所选选项制作必填字段
- android - 如何使用配置解决资源'attr/max_value'的重复值我已经尝试过stackover答案但它不起作用
- java - 根据变量创建类的实例
- twig - 在 Twig Opencart 中渲染多维数组中的元素
- python - 更新 Anaconda 失败并出现删除错误
- python - FTPS 文件传输到远程时握手操作超时
- shell - 在特定位置将字符串从小写替换为大写
- python - ModuleNotFoundError:没有名为“sklearn.grid_search”的模块
- hadoop - 如何将包含空格的列名传递给 sqoop --map-column-java