[RUBY] [JavaScript] Comment afficher une alerte en cas d'omission du formulaire de saisie

introduction

Je crée un site EC avec Rails. Lors de l'ajout d'un article au panier, je voulais afficher un pop-up comme celui ci-dessous s'il n'y avait pas de quantité sélectionnée. Cette fois, c'est le mémorandum. スクリーンショット 2020-05-29 23.12.14.png

Information supplémentaire

Contenu du formulaire

La page de l'image ci-dessus est le fichier View suivant.

.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, "quantité", class: "showMain__Boxes__rightBox__orderQuantity__title"
          = f.select :quantity, stock_array_maker(@stock), {include_blank: "Veuillez sélectionner"}, {class: "showMain__Boxes__rightBox__orderQuantity__form"}
        .showMain__Boxes__rightBox__line
          .showMain__Boxes__rightBox__line__price
            = "Prix de base: ¥#{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 (Ajouter aux Favoris)
        .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"}

Comment écrire JS

J'obtiens deux nœuds, une balise d'envoi et une balise de sélection de quantité.

$(function(){
  $("#addToCart").on('click', function(e){
    if(document.getElementById('quantity').value === ""){
      alert("Veuillez sélectionner une quantité.");
      return false;
    }else{
      return true;
    }
  })
});

Mis à feu lorsque le bouton d'envoi du formulaire est enfoncé, et s'il n'y a pas de valeur id = f.select: quantité ~, il retourne false et avertit avec une alerte. Si la valeur de retour est vraie, elle sera soumise, et si elle est fausse, elle ne sera pas soumise. En passant, s'il n'y a pas de "return false", une fenêtre contextuelle apparaîtra, mais vous serez redirigé vers la page suivante.

Le JS ci-dessus peut également être effectué par la méthode suivante

$(function(){
  $("#addToCart").on('click', function(e){
    if(!(document.getElementById('quantity').value)){
      alert("Veuillez sélectionner une quantité.");
      return false;
    }else{
      return true;
    }
  })
});

Site de référence

Comment vérifier l'entrée de formulaire avec JavaScript [JavaScript] Comment vérifier les caractères vides [Étude]

Recommended Posts

[JavaScript] Comment afficher une alerte en cas d'omission du formulaire de saisie
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
Comment afficher le résultat du remplissage du formulaire
Je veux rendre le cadre de la zone de texte rouge lorsqu'il y a une erreur de saisie
[Heroku] Comment résoudre lorsqu'une erreur est affichée par git push heroku master
Comment ajouter des caractères à afficher lors de l'utilisation de la méthode link_to
[swift5] Comment exécuter le traitement lorsque tabBar est appuyé
Une valeur nulle est entrée lors de l'affectation à un tableau
[Rails] Comment afficher les images dans la vue
Comment résoudre le problème lorsque la valeur n'est pas envoyée lorsque le formulaire est désactivé dans les rails et envoyé
Lorsqu'il n'y a pas de sortie vers stdout dans le journal du docker
Comment spécifier la base de données lors de la création d'une application avec des rails
Qu'est-ce qu'un objet immuable? [Explication comment faire]
Lancer une exception et attraper lorsqu'il n'y a pas de gestionnaire correspondant au chemin au printemps
[Java] Comment afficher les Wingdings
Comment gérer les instances
[Swift] Comment afficher lorsque l'application quiz répond correctement [Débutant]
[Rails 6] Comment créer un écran de saisie de formulaire dynamique à l'aide de cocoon
Comment afficher 0 sur le côté gauche de la valeur d'entrée standard
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
Que faire si vous mourez avec zip si vous avez pom lors de la création d'un fichier exécutable avec gradle