2017-09-20 3 views
1

J'ai utilisé serialize() fonction jQuery et il va attraper toute la valeur par le nom du formulaire sélectionné, comme le code ci-dessous.Supprime la valeur après sa sérialisation à l'aide de jQuery.

$('#serialize').click(function(){ 
 
    var ser = $('#form1').serialize(); 
 
    alert(ser); 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
    <form id="form1"> 
 
    <input type="text" name="text1"> 
 
    <input type="text" name="text2"> 
 
    </form> 
 
    <button id="serialize">Serialize</button> 
 

Résultat

text1=&text2= 

est-il un moyen de supprimer le text1 juste après la sérialisation?

Le résultat que j'attends

text2= 

Répondre

1

Plutôt que de le retirer après le fait, essayer de filtrer avant de sérialisation, par exemple:

$("#form1").find("input[name!=text1]").serialize(); 

Cet exemple trouver trouver tous les entrées dans form1 qui n'ont pas le nom de text1, alors il sérialisera cela.

+0

Et si j'ai 2 filtres? est-ce possible ? – Gagantous

+0

ai-je dû .find(). Find()? – Gagantous

+0

Si vous voulez filtrer 2, continuez à enchaîner la fonction find(). Comme ceci $ ("# form1"). Find ("input [name! = Text1]"). Find ("input [nom! = Text2]"). Serialize(); –

1

Une approche, cela vous permettra d'avoir une structure de données avec les noms d'éléments de forme ignorés, ne serait-ce:

// Object with the names of the form elements to ignore 
var filters = { 
    "text1": true, 
    "textN": true 
}; 
$("#form1") 
    .find(":input") 
    .filter(function (i, item) { 
     return !filters[item.name]; 
    }) 
    .serialize(); 
1

Vous pouvez retirer du serialize par un élément faisant à disabled

$('#serialize').click(function(){ 
 
    removeParam("#form1 [name=text1]"); 
 
    var ser = $('#form1').serialize(); 
 
    console.log(ser); 
 
}); 
 

 
function removeParam(p) { 
 
    $(p).attr("disabled",true); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
    <form id="form1"> 
 
    <input type="text" name="text1"> 
 
    <input type="text" name="text2"> 
 
    </form> 
 
    <button id="serialize">Serialize</button>