web-dev-qa-db-fra.com

Comment puis-je définir l'attribut Name d'un champ de saisie à l'aide de Jquery?

Question rapide ... Je me demandais comment je pouvais y arriver.

D'accord, j'ai un champ de saisie comme celui-ci:

<input type="text" id="input1" size="10" name="" value="" class="checked other_amount" onfocus="Toggle('radio1', 'input1');" />

Je voudrais cliquer sur un div avec un ID de #resetPrompt et remplir le nom vide attr de l'entrée avec "other_amount"

Je suis à court d'idées ça fait une longue journée

Merci les gars,

Mat

30
TikaL13
$('#resetPrompt').click(function(){
    $('#input1').attr('name', 'other_amount');
});
58
Alex Weber

C'est pour tous les googleurs là-bas:

Il convient de noter que la proposition d'Alex, bien que fonctionnelle dans la plupart des "vrais" navigateurs, ne fonctionne pas dans les versions 8 et inférieures (jquery 1.6.2). Lors de la définition de l'attribut "nom" d'un champ de saisie, Microsoft, pour corriger un bogue, a ajouté un attribut fictif "submitName" lorsque des champs de saisie dynamiques sont attachés au DOM.

Pour contourner le problème, c.-à-d., Forcez vos utilisateurs à mettre à niveau, utilisez Firefox, Chrome, etc. ou vous devrez ajouter le champ de saisie manuellement:

$("#resetPrompt").click(function(){
   $("#input1").remove();
   $("#input_container").append('<input id="input1" name="' + other_amount + "' type="text" class="checked other_amount" onFocus="Toggle(\'radio1\', \'input1\');" />');
});
4
eugene

Si "other_amount" est l'ID de l'autre entrée, utilisez attr et val comme suit:

$("#resetPrompt").click(function(){
    var otherValue = $("#other_amount").val();
    $("#input1").attr("name", "someName");
}
1
Raul Agrait

En supposant que "other_amount" est le nom et non l'id de l'entrée correspondante.

$('#resetPrompt').click( function() {
   $('#input1').attr('name', $('[name=other_amount]').val());
});
1
tvanfosson