JQuery zeigt keine Validierungen für die Ansichten an

Afolabi Olaoluwa Akinwumi

Ich kann nicht herausfinden, was ich in meiner edit.js.slimDatei falsch mache . Es werden keine Validierungen angezeigt, wenn die erforderlichen Felder leer sind.

Regler

# frozen_string_literal: true

class MerchantsController < ApplicationController
  include ControllerHelpers::StrongParameters

  def index
    @merchants = Merchant.all.load
  end

  def edit
    merchant
  end

  def update
    merchant

    respond_to do |format|
      if @merchant.update(update_params)
        format.js { redirect_to merchants_path, notice: 'Merchant was successfully updated.' }
        format.json { render :show, status: :ok, location: @merchant }
      else
        format.js { render :edit }
        format.json { render json: @merchant.errors, status: :unprocessable_entity }
      end
    end
  end

  private

  def merchant
    @merchant ||= Merchant.find(params[:id])
  end

  def update_params
    params.require(:merchant).permit(permitted_merchant_update_attributes)
  end
end

edit.js.slim # Dies zeigt keinen Validierungsfehler im Formular an, auch wenn ich 700 Mal klicke

| $('.divTable.blueTable').bind('ajax:success', function () { $(this).hide().parent().append("
= j render 'inline_edit_form', merchant: @merchant
| "); })

_inline_edit_form.html.slim

= simple_form_for @merchant, id: dom_id(@merchant, 'inline_edit_form'), remote: true do |f|
  = f.error_notification
  = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?

  .divTable.blueTable
    .divTableHeading
      .divTableRow
        .divTableHead
          | Name
        .divTableHead
          | Description
        .divTableHead
          | Email
        .divTableHead
          | Status
        .divTableHead[colspan="2"]
          | Actions
    .divTableBody
      .divTableCell
        = f.input :name, label: false
      .divTableCell
        = f.input :description, label: false
      .divTableCell
        = f.input :email, label: false
      .divTableCell
        = f.input :status, label: false
      .divTableCell
        = f.button :submit, class: 'btn btn-primary btn-block btn-sm'

update.js.slim

| $('.refresh').bind('ajax:success', function () { $(this).hide().parent(); })

Seitenquelltext

Bildbeschreibung hier eingeben

Bei dem Versuch, es zu lösen, habe ich eine andere Lösung in meinem gefunden edit.js.slim, die Validierungen anzeigt, aber wenn ich zum zweiten Mal auf die Schaltfläche "Aktualisieren" klicke, wird sie zu marchant_path umgeleitet, die auf HTML reagiert, anstatt im Formular zu bleiben und Validierungsverstöße anzuzeigen.

| $('.divTable.blueTable').replaceWith('
= j render 'inline_edit_form'
| '); 

Hinweis : Ich verwende Rails 6.1.0

Afolabi Olaoluwa Akinwumi

Basierend auf dem, was ich in der Seitenquelle meines Browsers habe, edit.js.slimliegt das Problem. Das ist mir eingefallen:

index.html.slim

.container
  = flash_messages_for(@merchant)

  h2.title-format[id="merchant-title"]
    = t('merchant_page.table_heading.title')
  .divTable.blueTable
    .divTableHeading
      .divTableRow
        .divTableHead
          | Name
        .divTableHead
          | Description
        .divTableHead
          | Email
        .divTableHead
          | Status
        .divTableHead
          | Transaction Sum
        .divTableHead[colspan="2"]
          | Actions
    .divTableBody
      = render @merchants

Was ich in der Seitenquelle meines Browsers habe

Bildbeschreibung hier eingeben

_inline_edit_form.html.slim

= simple_form_for @merchant, remote: true do |f|
  .container
    h2.title-format
      = t('edit_page.edit_page_heading.edit')

  = f.error_notification
  = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?

  .divTable.blueTable
    .divTableHeading
      .divTableRow
        .divTableHead
          | Name
        .divTableHead
          | Description
        .divTableHead
          | Email
        .divTableHead
          | Status
        .divTableHead
          | Actions

    .divTableBody
      .divTableCell
        = f.input :name, label: false
      .divTableCell
        = f.input :description, label: false
      .divTableCell
        = f.input :email, label: false
      .divTableCell
        = f.input :status, label: false
      .divTableCell
        = f.button :submit, class: 'btn btn-primary btn-block btn-sm'

edit.js.slim

Das ist es, was ich in meiner edit.js.slimDatei gefunden habe, damit es richtig funktioniert.

| $('.divTable.blueTable').hide().parent().prepend('
= j render 'inline_edit_form', merchant: @merchant
| ');

| $('form#edit_merchant_
= @merchant.id
| ').hide().parent().append("
= j render 'inline_edit_form', merchant: @merchant
| ");

| $("h2#merchant-title").remove(".title-format");

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

ViewPager zeigt keine benutzerdefinierten Ansichten an

Test RSpec zeigt den Fehler nicht an darf nicht leer sein, er zeigt die Validierungen für minimalen und steigenden Fehler an

AjQ-Anforderung für die automatische Vervollständigung von jQuery zeigt keine zurückgegebenen Daten an

Die Django-HTML-Seite zeigt keine Variable an, die ich in Ansichten übergeben habe

ViewPager zeigt die Ansichten nicht an

ListView CustomAdapter zeigt keine Ergebnisse für die erste Position an

UITableView zeigt keine Steuerelemente für die Neuordnung an

WP_Query zeigt keine Paginierung für die Startseite an

Android Studio zeigt keine Attribute für die Schaltfläche an

wie man die Jquery-Datepicker-Validierungen für Standardwerte bearbeitet

UI-Router zeigt keine verschachtelten Ansichten an

xcode 6 zeigt keine Ansichten im Storyboard an

Benutzerformular zeigt keine Django-Klassenbasierten Ansichten an

Javascript - Jquery zeigt keine Werte an, die in einem Formular übergeben wurden

Messaging Extension für Microsoft Teams zeigt keine Liste mit mehreren Parametern für die Suche an

IBM Data Catalog zeigt keine Vorschau für die Verbindung für Cloudant Database an

VisualVM Zeigt keine Methoden an, die für die CPU-Leistungsprofilerstellung aufgerufen werden

Die Komponente für die Eingabe von Wickelwinkelmaterial zeigt keine Fehlerstile an

Die AJAX-Zieldatei zeigt keine Daten für die Upload-Verarbeitung an

Die Swagger-Benutzeroberfläche zeigt keine Controller/Routen für die ASP.NET-API an

Bestätigungsnachricht für die Formularübermittlung nach Validierungen in JavaScript

Angular zeigt keine nicht englischen Buchstaben in UI-Router-Ansichten an

recyclerview for chat app zeigt keine Daten oder Ansichten an

Die GUI zeigt keine Agentenattribute an

Die Auswahloption zeigt keine Daten an

Die Navigationsleiste zeigt keine Inline an

Netstat im Docker zeigt keine PIDs für Prozesse an, die als ein anderer Benutzer gestartet wurden

Die diskrete Suchleiste von Android zeigt keine Häkchen für Maximalwerte unter 2 an

Die RecyclerView lädt keine Daten aus Firebase und zeigt für alle Zeilen null an

TOP Liste

heißlabel

Archiv