J'ai un ensemble de boîtes de saisie et vous pouvez ajouter de plus en plus d'ensembles de ces formulaires si vous cliquez sur le bouton Ajouter plus. Dans mon formulaire, je peux soumettre des données et je les ai à afficher lorsque vous rechargez la page. Cependant, je suis obligé de m'assurer que tous les champs ont des valeurs avant d'exécuter mon AJAX. J'utilise Jquery pour ce projet

Je ne peux pas utiliser de plugin de validation car j'utilise magento et chaque fois que j'essaye d'exécuter les plugins en "mode sans conflit", les plugins ne semblent pas fonctionner. Parce que j'utilise Magento, cela signifie que je dois exécuter Jquery en mode sans conflit.

J'ai vu d'autres solutions pour cela, mais elles sont toutes liées aux zones de saisie et j'ai 1 zones de saisie et 2 zones de sélection. Comment puis-je m'assurer que toutes les zones de saisie sont remplies avant et que toutes les zones de sélection qui ne sont pas désactivées ont quelque chose de sélectionné avant l'appel ajax?

Voici une partie de mon HTML:

<form>
    <input id="12">
    <select id="1">
        <option disabled="disabled" selected="selected">select please</option>
        <option value="01">Option 1</option>
        <option value="02">Option 2</option>           
     </select>
     <select id="2">
        <option disabled="disabled" selected="selected">Select Please</option>
        <option value="01">Option 1</option>
        <option value="02">Option 2</option>           
     </select>
-1
Ben 7 mars 2016 à 20:21

3 réponses

Meilleure réponse

En utilisant un événement de clic, si vous utilisez .val() sur votre <select/>, il retournera null s'il n'y a pas d'attribut value sur votre <option/>.

Remarque: Cela ne fonctionnera pas si vous mettez un attribut de valeur sur vos options.

Edit: Faire une comparaison !== sera plus rapide.

$("#submit-button").click(function(){
    //if this is true, then it is valid
    alert($("#1").val() !== null);
});
2
wpercy 7 mars 2016 à 20:30

Vous pouvez le faire en obtenant la valeur des entrées dans une propriété.

Ce script alerterait le nombre d'entrées incomplètes ou manquantes avec une base dans votre structure.

(pas de jQuery)

var myForm=document.getElementsByTagName("form")[0];
var formSelectors=myForm.getElementsByTagName("select"),
    formTextBoxes=myForm.getElementsByTagName("input"),
    missing=0;
var i,
    length=formSelectors.length;
for(i=0;length>i;i++){
    if(formSelectors[i].value===formSelectors[i].children[0].value)
        //Check if select value is equal to
        //select please or Select please
        //MISSING! (select)
        missing++
}
length=formTextBoxes.length;
for(i=0;length>i;i++){
    if(formTextBoxes[i].value.length===0)
        //MISSING! (input)
        missing++
}
alert(missing)
1
Hydroper 7 mars 2016 à 17:53

Essaye ça:

if($('#12').val()!='') {
// your code
}
-1
trenccan 7 mars 2016 à 17:34