Quelqu'un sait pourquoi l'expression JQuery suivante fonctionne dans Firefox mais pas dans IE ou Chrome? Une instruction d'alerte révèle que dans IE, l'expression est indéfinie.JQuery fonctionne dans Firefox, mais pas dans IE
MISE À JOUR: Voici un code HTML qui échoue.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type="text/javascript" src="/js/jquery-1.3.2.min.js">
</script>
<script type="text/javascript">
function addItem() {
var v = $('form :hidden:last').attr('name');
var n = /(.*)input/.exec(v);
var newPrefix;
if (n[1].length == 0) {
newPrefix = '1';
} else {
newPrefix = parseInt(n[1])+1;
}
var lastExercise = $('form tr:last select:first').attr('value');
var oldElem = $('form tr:last');
var newElem = oldElem.clone(true);
var lastHidden = $('form :hidden:last');
lastHidden.val(newPrefix);
var pat = '=\"'+n[1]+'input';
newElem.html(newElem.html().replace(new RegExp(pat, 'g'), '=\"'+newPrefix+'input'));
newElem.appendTo('table');
$('form tr:last select:first').attr('value', lastExercise);
$('form :hidden:last').val('');
}
function removeItem() {
var rows = $('form tr');
if (rows.length > 2) {
rows.filter(":last").remove();
$('form :hidden:last').val('');
} else {
alert('Cannot remove any more rows');
}
}
</script>
</head>
<body>
<form autocomplete="off" method="post" action="">
<div>
<input type="button" onclick="addItem(); return false;" value="Add Item" />
<input type="button" onclick="removeItem(); return false;" value="Remove Last Item" />
</div>
<table>
<tr>
<th>Name</th>
<th>Weight</th>
</tr>
<tr>
<td>
<input type="text" name="input1" id="input1" value="" />
</td>
<td>
<input type="text" name="input2" id="input2" value="" />
<select name="input3" class="unitsInput">
<option value="0">
Pounds
</option>
<option value="1">
Kilograms
</option>
</select>
</td>
<td>
<input type="hidden" name="input4" id="input4" value="" />
</td>
</tr>
</table>
<div>
<select name="input8">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
<div>
<input type="submit" name="submit" id="submit" value="Submit" />
</div>
</form>
</body>
</html>
Fournissez du code HTML et vous obtiendrez cette réponse lickety-split. –
Dans le code que j'ai ajouté, la première ligne de addItem renvoie undefined. – Khanpo