J'essaie de remplacer l'index des éléments de formulaire. J'ai le suivantJavaScript ne remplace pas tous les éléments
var test = "<input name='[1].Id' value='598' type='hidden' /><input name='[1].OrderItemId' value='867' type='hidden' />";
alert(test.replace('[1]', '[2]'));
Je reçois des résultats curieux. Le premier champ caché est remplacé par le second est ignoré
-à-dire ma réponse est quelque chose comme ceci:
"<input name='[1].Id' value='598' type='hidden' /><input name='[2].OrderItemId' value='867' type='hidden' />"
EDIT:
OK, grâce à ces méthodes ont travaillé sur mon exemple simple. Cependant, en réalité, ma chaîne est un peu plus complexe. Voici le contenu de "var LastRow"
<td>
<a class="deleteAddress" href="#">
<img alt="remove" src="/images/icons/delete_button.gif">
</a></td>
<td class="p-5" width="100">
<input name="[1].Id" value="612" type="hidden">
<input name="[1].OrderItemId" value="868" type="hidden">
<input class="itemAddressQuantity" name="[1].Quantity" value="" type="text">
</td>
<td class="p-5" width="100">
<select name="[1].AddressId"><option value="2">address1</option></select>
</td>
et ici est la fonction js
$('#addNewAddress').click(function (event) {
event.preventDefault();
var length = $('.table-item-address tbody').find('tr').length;
var previousLength = length - 1;
var previousIndex = "/\[" + previousLength + "\]/g";
var currentIndex = "[" + length + "]";
var lastRow = $('.table-item-address tbody tr').last();
alert(lastRow.html()); // html is shown above
var newRow = lastRow.html().replace(previousIndex, currentIndex);
$('.table-item-address tr').last().after('<tr>' + newRow + '</tr>');
AdjustValues();
});
merci, ce travail sur mon exemple. Alors oui, vous méritez à juste titre la bonne réponse. J'espère que vous pourriez jeter un coup d'œil rapide sur le montage. – frosty
Jetez un oeil à mes modifications. Il y a une façon plus simple de le faire - travailler là-dessus maintenant. –
Ne tenez pas compte de mon commentaire précédent. J'ai oublié que JavaScript ne supporte pas lookbehind (et [faire semblant c'est un mal de tête majeur] (http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript))! –