[RUBY] [JavaScript] So zeigen Sie eine Warnung an, wenn ein Eingabeformular ausgelassen wurde

Einführung

Ich erstelle eine EC-Site mit Rails. Beim Hinzufügen eines Artikels zum Warenkorb wollte ich ein Popup wie das folgende anzeigen, wenn keine Menge ausgewählt war. Diesmal ist das Memorandum. スクリーンショット 2020-05-29 23.12.14.png

Zusatzinformationen

Formularinhalt

Die Seite im obigen Bild ist die folgende Ansichtsdatei.

.showMain
  .showMain__Boxes
    .showMain__Boxes__leftBox
      = image_tag @product.image, width: 450, height: 450, class: "showMain__Boxes__leftBox__image"
    .showMain__Boxes__rightBox
      = form_with url: add_item_carts_path, local: true, name: "formForCart" do |f|
        .showMain__Boxes__rightBox__name
          = @product.name
        .showMain__Boxes__rightBox__namejap
          = @product.namejap
        .showMain__Boxes__rightBox__description
          = @product.description
        .showMain__Boxes__rightBox__orderQuantity
          = f.label :quantity, "Menge", class: "showMain__Boxes__rightBox__orderQuantity__title"
          = f.select :quantity, stock_array_maker(@stock), {include_blank: "Bitte auswählen"}, {class: "showMain__Boxes__rightBox__orderQuantity__form"}
        .showMain__Boxes__rightBox__line
          .showMain__Boxes__rightBox__line__price
            = "Grundpreis: ¥#{convertToJPY(@product.price)}"
          .showMain__Boxes__rightBox__line__fav
            - if user_signed_in? && current_user
              - if @product.bookmark_by?(current_user)
                = link_to product_bookmark_path(@product.id), class: "showMain__Boxes__rightBox__line__fav__btn.fav", method: :delete, remote: true do
                  %i.fas.fa-star.star
              - else
                = link_to product_bookmarks_path(@product.id), class: "showMain__Boxes__rightBox__line__fav__btn.fav", method: :post, remote: true do
                  %i.far.fa-star.star-o (Zu Favoriten hinzufügen)
        .showMain__Boxes__rightBox__line
        .showMain__Boxes__rightBox__addCart
          = f.hidden_field :product_id, value: @product.id
          = f.hidden_field :cart_id, value: @cart.id
          = f.submit "Add to Cart", {class: "showMain__Boxes__rightBox__addCart__btn", id: "addToCart"}

Wie schreibe ich JS

Ich erhalte zwei Knoten, ein Submit-Tag und ein Mengenauswahl-Tag.

$(function(){
  $("#addToCart").on('click', function(e){
    if(document.getElementById('quantity').value === ""){
      alert("Bitte wählen Sie eine Menge.");
      return false;
    }else{
      return true;
    }
  })
});

Wird auf Feuer gesetzt, wenn die Senden-Schaltfläche des Formulars gedrückt wird. Wenn kein ID-Wert von = f.select: Quantity ~ vorhanden ist, wird false zurückgegeben und mit einer Warnung gewarnt. Wenn der Rückgabewert wahr ist, wird er gesendet, und wenn er falsch ist, wird er nicht gesendet. Übrigens, wenn es kein "return false" gibt, erscheint ein Popup, aber Sie werden zur nächsten Seite weitergeleitet.

Das obige JS kann auch mit der folgenden Methode durchgeführt werden

$(function(){
  $("#addToCart").on('click', function(e){
    if(!(document.getElementById('quantity').value)){
      alert("Bitte wählen Sie eine Menge.");
      return false;
    }else{
      return true;
    }
  })
});

Referenzseite

So überprüfen Sie die Formulareingabe mit JavaScript [JavaScript] So suchen Sie nach leeren Zeichen [Studie]

Recommended Posts

[JavaScript] So zeigen Sie eine Warnung an, wenn ein Eingabeformular ausgelassen wurde
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
So zeigen Sie das Ergebnis des Ausfüllens des Formulars an
Ich möchte den Rahmen des Textfelds rot machen, wenn ein Eingabefehler auftritt
[Heroku] So lösen Sie, wenn ein Fehler von git push heroku master angezeigt wird
Hinzufügen von Zeichen zur Anzeige bei Verwendung der link_to-Methode
[swift5] So führen Sie die Verarbeitung aus, wenn Sie auf die TabBar tippen
Beim Zuweisen zu einem Array wird ein Nullwert eingegeben
[Schienen] So zeigen Sie Bilder in der Ansicht an
So lösen Sie das Problem, wenn der Wert nicht gesendet wird, wenn das Formular in Schienen deaktiviert und gesendet wird
Wenn im Docker-Protokoll keine Ausgabe für stdout vorhanden ist
So geben Sie db beim Erstellen einer App mit Rails an
Was ist ein unveränderliches Objekt? [Erklärung, wie man macht]
Wirf eine Ausnahme und fange, wenn es keinen Handler gibt, der dem Pfad im Frühjahr entspricht
[Java] So zeigen Sie Wingdings an
Umgang mit Instanzen
[Swift] So zeigen Sie an, wann die Quiz-App richtig antwortet [Anfänger]
[Rails 6] So erstellen Sie mit cocoon einen dynamischen Formular-Eingabebildschirm
So zeigen Sie 0 auf der linken Seite des Standardeingabewerts an
[Rails 5] Anzeigen des Bildschirms zum Ändern des Kennworts bei Verwendung von devise
Was tun, wenn Sie mit Reißverschluss sterben, wenn Sie Pom haben, wenn Sie ein ausführbares Glas mit Gradle erstellen?